mirror of https://github.com/abpframework/abp.git
3 changed files with 74 additions and 0 deletions
@ -0,0 +1,60 @@ |
|||||
|
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"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
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