mirror of https://github.com/abpframework/abp.git
committed by
GitHub
3 changed files with 108 additions and 3 deletions
@ -0,0 +1,76 @@ |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using Shouldly; |
|||
using Volo.Abp.Data; |
|||
using Volo.Abp.ObjectExtending; |
|||
using Xunit; |
|||
|
|||
namespace Volo.Abp.Json |
|||
{ |
|||
public class AbpHasExtraPropertiesJsonConverter_Tests: AbpJsonTestBase |
|||
{ |
|||
private readonly IJsonSerializer _jsonSerializer; |
|||
|
|||
public AbpHasExtraPropertiesJsonConverter_Tests() |
|||
{ |
|||
_jsonSerializer = GetRequiredService<IJsonSerializer>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public void JsonConverter_Test() |
|||
{ |
|||
var fooDto = new FooDto |
|||
{ |
|||
Name = "foo-dto", |
|||
BarDtos = new List<BarDto>() |
|||
}; |
|||
fooDto.SetProperty("foo", "foo-value"); |
|||
|
|||
var barDto = new BarDto |
|||
{ |
|||
Name = "bar-dto" |
|||
}; |
|||
barDto.SetProperty("bar", "bar-value"); |
|||
fooDto.BarDtos.Add(barDto); |
|||
|
|||
var json = _jsonSerializer.Serialize(fooDto); |
|||
|
|||
fooDto = _jsonSerializer.Deserialize<FooDto>(json); |
|||
fooDto.ShouldNotBeNull(); |
|||
fooDto.Name.ShouldBe("foo-dto"); |
|||
fooDto.GetProperty("foo").ShouldBe("foo-value"); |
|||
|
|||
fooDto.BarDtos.Count.ShouldBe(1); |
|||
fooDto.BarDtos.First().Name.ShouldBe("bar-dto"); |
|||
fooDto.BarDtos.First().GetProperty("bar").ShouldBe("bar-value"); |
|||
|
|||
fooDto.Name = "new-foo-dto"; |
|||
fooDto.SetProperty("foo", "new-foo-value"); |
|||
fooDto.BarDtos.First().Name = "new-bar-dto"; |
|||
fooDto.BarDtos.First().SetProperty("bar", "new-bar-value"); |
|||
|
|||
json = _jsonSerializer.Serialize(fooDto); |
|||
|
|||
fooDto = _jsonSerializer.Deserialize<FooDto>(json); |
|||
fooDto.ShouldNotBeNull(); |
|||
fooDto.Name.ShouldBe("new-foo-dto"); |
|||
fooDto.GetProperty("foo").ShouldBe("new-foo-value"); |
|||
|
|||
fooDto.BarDtos.Count.ShouldBe(1); |
|||
fooDto.BarDtos.First().Name.ShouldBe("new-bar-dto"); |
|||
fooDto.BarDtos.First().GetProperty("bar").ShouldBe("new-bar-value"); |
|||
} |
|||
} |
|||
|
|||
public class FooDto : ExtensibleObject |
|||
{ |
|||
public string Name { get; set; } |
|||
|
|||
public List<BarDto> BarDtos { get; set; } |
|||
} |
|||
|
|||
public class BarDto : ExtensibleObject |
|||
{ |
|||
public string Name { get; set; } |
|||
} |
|||
} |
|||
Loading…
Reference in new issue