private void TestCollectionCore( Action <NilImplicationCollectionTestTarget> adjuster, Action <Packer, List <int>, List <int>, List <int> > packing, Func <List <int> > memberDefault = null, Func <List <int> > @null = null, Func <List <int> > prohibit = null ) { using (var buffer = new MemoryStream()) using (var packer = Packer.Create(buffer)) { var serializer = MessagePackSerializer.Create <NilImplicationCollectionTestTarget>(this.CreateSerializationContext()); var target = new NilImplicationCollectionTestTarget(); if (adjuster != null) { adjuster(target); } packing( packer, memberDefault != null ? memberDefault() : target.MemberDefault, @null != null ? @null() : target.Null, prohibit != null ? prohibit() : target.Prohibit ); buffer.Position = 0; var result = serializer.Unpack(buffer); Assert.That(result.MemberDefault, Is.EqualTo(target.MemberDefault)); Assert.That(result.Null, Is.EqualTo(target.Null)); Assert.That(result.Prohibit, Is.EqualTo(target.Prohibit)); var expectedBytes = buffer.ToArray(); using (var actual = new MemoryStream()) { serializer.Pack(actual, target); } } }
private void TestCollectionCore( Action<NilImplicationCollectionTestTarget> adjuster, Action<Packer, List<int>, List<int>, List<int>> packing, Func<List<int>> memberDefault = null, Func<List<int>> @null = null, Func<List<int>> prohibit = null ) { using ( var buffer = new MemoryStream() ) using ( var packer = Packer.Create( buffer ) ) { var serializer = MessagePackSerializer.Create<NilImplicationCollectionTestTarget>( this.CreateSerializationContext() ); var target = new NilImplicationCollectionTestTarget(); if ( adjuster != null ) { adjuster( target ); } packing( packer, memberDefault != null ? memberDefault() : target.MemberDefault, @null != null ? @null() : target.Null, prohibit != null ? prohibit() : target.Prohibit ); buffer.Position = 0; var result = serializer.Unpack( buffer ); Assert.That( result.MemberDefault, Is.EqualTo( target.MemberDefault ) ); Assert.That( result.Null, Is.EqualTo( target.Null ) ); Assert.That( result.Prohibit, Is.EqualTo( target.Prohibit ) ); var expectedBytes = buffer.ToArray(); using ( var actual = new MemoryStream() ) { serializer.Pack( actual, target ); } } }