diff options
author | pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp> | 2020-10-27 14:27:47 +0300 |
---|---|---|
committer | pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp> | 2020-10-27 14:27:47 +0300 |
commit | 1fba6ccb5723e15aa8d83e8a3cacf3971c4d64cc (patch) | |
tree | 817ae7de91da6522b69d00a102ce9ffd660be15c /tests | |
parent | 5a6cda6f9f5fd464da5eea7112e5d05cb0e70699 (diff) |
Partial solution of #1085: mpc.exe #1092
commit d7a50b9d9a8de447a4dec61219fd584e862095a3
Merge: 02ae418 5a6cda6
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Mon Oct 26 09:33:45 2020 +0900
Merge remote-tracking branch 'upstream/develop' into solution#1085-mpc
commit 02ae418a39cdd6d5bbdab7b900eb5169d80fa7e9
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Mon Oct 26 09:25:20 2020 +0900
Update: Loop demonstration
commit d84ae759892b2ab9fc10d8d434902fca10ee88c1
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Mon Oct 26 09:24:31 2020 +0900
Change: drop deserialized value -> reader.Skip()
commit 9b0d4a21a8824dc277a48ac63180e901b6f9890e
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Mon Oct 26 00:27:10 2020 +0900
Fix: remove unused boolean local variables
commit fdfabeb2f1fc8b87bc41419fb0ccaee2c354b98a
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Mon Oct 26 00:00:28 2020 +0900
Update: Make the same as Dynamic
commit bef4692e10cc47b137b7c647acb11feffb177206
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 19:37:11 2020 +0900
Add test project
commit a8fac80ec561f476f122d35ad2cbcd831a955d41
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 18:55:27 2020 +0900
Add types to sandbox
commit 6ffc3c309b6b47728e927799b574fc23b37fa2c8
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 18:45:40 2020 +0900
Update: string-key mpc.exe
commit 44819e6d551961598c29fdab5aa0bf65d53ed0e6
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 18:05:24 2020 +0900
Update: int-key mpc.exe
commit 0a2fef4d2f3ae7f568bd34a554792f006ec31275
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 12:12:57 2020 +0900
Fix: var -> global::MessagePack.IFormatterResolver
commit 086aa11e7ce4fb0723014c8bda554104b3b38463
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 12:05:21 2020 +0900
Fix: Line Feed
commit 39d3d0844848f1d742820e2786528baf2bd1627c
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 12:03:37 2020 +0900
Fix: space
commit c57f423a49fed8e1c1b365310017a2ec382b5f07
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sun Oct 25 12:00:32 2020 +0900
Change: var to globall::
Revert: DepthStep position
Revert: }#> -> } #>
commit de6fd239491b3fb7aa373644a384a71772d23b43
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sat Oct 24 11:04:44 2020 +0900
fix CRLF
commit 4b6ae7c6089f7d6732691a0af7f1d93424ccaa95
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Sat Oct 24 10:59:50 2020 +0900
Change the format to decrease template part lines.
Change the iterator `i` type from `int` to `var`.
commit 95f41adff75a0ff605e760d5cdc485de10ee13be
Author: pCYSl5EDgo <pCYSl5EDgo@yahoo.co.jp>
Date: Fri Oct 23 21:03:54 2020 +0900
This is a cherry-pick of #1074.
This is a refactoring of int-key mpc.exe tt file.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/MessagePack.GeneratedCode.Tests/MessagePack.GeneratedCode.Tests.csproj | 21 | ||||
-rw-r--r-- | tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs | 105 |
2 files changed, 126 insertions, 0 deletions
diff --git a/tests/MessagePack.GeneratedCode.Tests/MessagePack.GeneratedCode.Tests.csproj b/tests/MessagePack.GeneratedCode.Tests/MessagePack.GeneratedCode.Tests.csproj new file mode 100644 index 00000000..99ef099c --- /dev/null +++ b/tests/MessagePack.GeneratedCode.Tests/MessagePack.GeneratedCode.Tests.csproj @@ -0,0 +1,21 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + + <IsPackable>false</IsPackable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> + <PackageReference Include="Nerdbank.Streams" Version="2.4.48" /> + <PackageReference Include="xunit" Version="2.4.0" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> + <PackageReference Include="coverlet.collector" Version="1.2.0" /> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\..\sandbox\Sandbox\Sandbox.csproj" /> + </ItemGroup> + +</Project> diff --git a/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs b/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs new file mode 100644 index 00000000..0db93add --- /dev/null +++ b/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs @@ -0,0 +1,105 @@ +// Copyright (c) All contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using MessagePack.Resolvers; +using Nerdbank.Streams; +using SharedData; +using Xunit; + +namespace MessagePack.GeneratedCode.Tests +{ + public class MissingPropertiesTest + { + private readonly MessagePackSerializerOptions options; + + public MissingPropertiesTest() + { + var resolver = CompositeResolver.Create(GeneratedResolver.Instance, StandardResolver.Instance); + options = MessagePackSerializerOptions.Standard.WithResolver(resolver); + } + + [Fact] + public void DefaultValueStringKeyClassWithoutExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteMapHeader(0); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueStringKeyClassWithoutExplicitConstructor>(seq, options); + Assert.Equal(DefaultValueStringKeyClassWithoutExplicitConstructor.Prop1Constant, instance.Prop1); + Assert.Equal(DefaultValueStringKeyClassWithoutExplicitConstructor.Prop2Constant, instance.Prop2); + } + + [Fact] + public void DefaultValueStringKeyClassWithExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteMapHeader(1); + writer.Write(nameof(DefaultValueStringKeyClassWithExplicitConstructor.Prop1)); + writer.Write(-1); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueStringKeyClassWithExplicitConstructor>(seq, options); + Assert.Equal(-1, instance.Prop1); + Assert.Equal(DefaultValueStringKeyClassWithExplicitConstructor.Prop2Constant, instance.Prop2); + } + + [Fact] + public void DefaultValueStringKeyStructWithExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteMapHeader(1); + writer.Write(nameof(DefaultValueStringKeyStructWithExplicitConstructor.Prop1)); + writer.Write(-1); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueStringKeyStructWithExplicitConstructor>(seq, options); + Assert.Equal(-1, instance.Prop1); + Assert.Equal(DefaultValueStringKeyStructWithExplicitConstructor.Prop2Constant, instance.Prop2); + } + + [Fact] + public void DefaultValueIntKeyClassWithoutExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteArrayHeader(0); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueIntKeyClassWithoutExplicitConstructor>(seq, options); + Assert.Equal(DefaultValueIntKeyClassWithoutExplicitConstructor.Prop1Constant, instance.Prop1); + Assert.Equal(DefaultValueIntKeyClassWithoutExplicitConstructor.Prop2Constant, instance.Prop2); + } + + [Fact] + public void DefaultValueIntKeyClassWithExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteArrayHeader(1); + writer.Write(-1); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueIntKeyClassWithExplicitConstructor>(seq, options); + Assert.Equal(-1, instance.Prop1); + Assert.Equal(DefaultValueIntKeyClassWithExplicitConstructor.Prop2Constant, instance.Prop2); + } + + [Fact] + public void DefaultValueIntKeyStructWithExplicitConstructorTest() + { + var seq = new Sequence<byte>(); + var writer = new MessagePackWriter(seq); + writer.WriteArrayHeader(1); + writer.Write(-1); + writer.Flush(); + + var instance = MessagePackSerializer.Deserialize<DefaultValueIntKeyStructWithExplicitConstructor>(seq, options); + Assert.Equal(-1, instance.Prop1); + Assert.Equal(DefaultValueIntKeyStructWithExplicitConstructor.Prop2Constant, instance.Prop2); + } + } +} |