mirror of
https://github.com/bitwarden/server.git
synced 2025-04-05 21:18:13 -05:00
Fix json only serializing base properties (#1840)
* Fix json only serializing base properties * Run formatting * Switch to returning concrete type * Update method name
This commit is contained in:
parent
f56d2ecae5
commit
b1cd42e394
@ -71,7 +71,7 @@ namespace Bit.Api.Models.Request
|
|||||||
existingSend.Data = JsonSerializer.Serialize(fileData, JsonHelpers.IgnoreWritingNull);
|
existingSend.Data = JsonSerializer.Serialize(fileData, JsonHelpers.IgnoreWritingNull);
|
||||||
break;
|
break;
|
||||||
case SendType.Text:
|
case SendType.Text:
|
||||||
existingSend.Data = JsonSerializer.Serialize(ToSendData(), JsonHelpers.IgnoreWritingNull);
|
existingSend.Data = JsonSerializer.Serialize(ToSendTextData(), JsonHelpers.IgnoreWritingNull);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentException("Unsupported type: " + nameof(Type) + ".");
|
throw new ArgumentException("Unsupported type: " + nameof(Type) + ".");
|
||||||
@ -128,7 +128,7 @@ namespace Bit.Api.Models.Request
|
|||||||
return existingSend;
|
return existingSend;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SendData ToSendData()
|
private SendTextData ToSendTextData()
|
||||||
{
|
{
|
||||||
return new SendTextData(Name, Notes, Text.Text, Text.Hidden);
|
return new SendTextData(Name, Notes, Text.Text, Text.Hidden);
|
||||||
}
|
}
|
||||||
|
61
test/Api.Test/Models/Request/SendRequestModelTests.cs
Normal file
61
test/Api.Test/Models/Request/SendRequestModelTests.cs
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
using System;
|
||||||
|
using System.Text.Json;
|
||||||
|
using Bit.Api.Models;
|
||||||
|
using Bit.Api.Models.Request;
|
||||||
|
using Bit.Core.Enums;
|
||||||
|
using Bit.Core.Services;
|
||||||
|
using Bit.Test.Common.Helpers;
|
||||||
|
using NSubstitute;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Bit.Api.Test.Models.Request
|
||||||
|
{
|
||||||
|
public class SendRequestModelTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void ToSend_Text_Success()
|
||||||
|
{
|
||||||
|
var deletionDate = DateTime.UtcNow.AddDays(5);
|
||||||
|
var sendRequest = new SendRequestModel
|
||||||
|
{
|
||||||
|
DeletionDate = deletionDate,
|
||||||
|
Disabled = false,
|
||||||
|
ExpirationDate = null,
|
||||||
|
HideEmail = false,
|
||||||
|
Key = "encrypted_key",
|
||||||
|
MaxAccessCount = null,
|
||||||
|
Name = "encrypted_name",
|
||||||
|
Notes = null,
|
||||||
|
Password = "Password",
|
||||||
|
Text = new SendTextModel()
|
||||||
|
{
|
||||||
|
Hidden = false,
|
||||||
|
Text = "encrypted_text"
|
||||||
|
},
|
||||||
|
Type = SendType.Text,
|
||||||
|
};
|
||||||
|
|
||||||
|
var sendService = Substitute.For<ISendService>();
|
||||||
|
sendService.HashPassword(Arg.Any<string>())
|
||||||
|
.Returns((info) => $"hashed_{(string)info[0]}");
|
||||||
|
|
||||||
|
var send = sendRequest.ToSend(Guid.NewGuid(), sendService);
|
||||||
|
|
||||||
|
Assert.Equal(deletionDate, send.DeletionDate);
|
||||||
|
Assert.False(send.Disabled);
|
||||||
|
Assert.Null(send.ExpirationDate);
|
||||||
|
Assert.False(send.HideEmail);
|
||||||
|
Assert.Equal("encrypted_key", send.Key);
|
||||||
|
Assert.Equal("hashed_Password", send.Password);
|
||||||
|
|
||||||
|
using var jsonDocument = JsonDocument.Parse(send.Data);
|
||||||
|
var root = jsonDocument.RootElement;
|
||||||
|
var text = AssertHelper.AssertJsonProperty(root, "Text", JsonValueKind.String).GetString();
|
||||||
|
Assert.Equal("encrypted_text", text);
|
||||||
|
AssertHelper.AssertJsonProperty(root, "Hidden", JsonValueKind.False);
|
||||||
|
Assert.False(root.TryGetProperty("Notes", out var _));
|
||||||
|
var name = AssertHelper.AssertJsonProperty(root, "Name", JsonValueKind.String).GetString();
|
||||||
|
Assert.Equal("encrypted_name", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user