예제 #1
0
        public void SetDelimiter_InvalidCustomDelimiter_DoesNotSetCustomDelimiter()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >()
                      .SetDelimiter(string.Empty);

            Assert.Equal("-", ser._delimiter);
        }
        public void constructor_with_serializers_should_initialize_instance()
        {
            var item1Serializer = Substitute.For <IBsonSerializer <bool> >();
            var item2Serializer = Substitute.For <IBsonSerializer <int> >();
            var item3Serializer = Substitute.For <IBsonSerializer <bool> >();
            var item4Serializer = Substitute.For <IBsonSerializer <int> >();
            var item5Serializer = Substitute.For <IBsonSerializer <bool> >();
            var item6Serializer = Substitute.For <IBsonSerializer <int> >();
            var item7Serializer = Substitute.For <IBsonSerializer <bool> >();
            var restSerializer  = Substitute.For <IBsonSerializer <Tuple <int> > >();

            var subject = new TupleSerializer <bool, int, bool, int, bool, int, bool, Tuple <int> >(
                item1Serializer,
                item2Serializer,
                item3Serializer,
                item4Serializer,
                item5Serializer,
                item6Serializer,
                item7Serializer,
                restSerializer);

            Assert.That(subject.Item1Serializer, Is.SameAs(item1Serializer));
            Assert.That(subject.Item2Serializer, Is.SameAs(item2Serializer));
            Assert.That(subject.Item3Serializer, Is.SameAs(item3Serializer));
            Assert.That(subject.Item4Serializer, Is.SameAs(item4Serializer));
            Assert.That(subject.Item5Serializer, Is.SameAs(item5Serializer));
            Assert.That(subject.Item6Serializer, Is.SameAs(item6Serializer));
            Assert.That(subject.Item7Serializer, Is.SameAs(item7Serializer));
            Assert.That(subject.RestSerializer, Is.SameAs(restSerializer));
        }
예제 #3
0
        public void constructor_with_serializers_should_initialize_instance()
        {
            var mockItem1Serializer = new Mock <IBsonSerializer <bool> >();
            var mockItem2Serializer = new Mock <IBsonSerializer <int> >();
            var mockItem3Serializer = new Mock <IBsonSerializer <bool> >();
            var mockItem4Serializer = new Mock <IBsonSerializer <int> >();
            var mockItem5Serializer = new Mock <IBsonSerializer <bool> >();
            var mockItem6Serializer = new Mock <IBsonSerializer <int> >();
            var mockItem7Serializer = new Mock <IBsonSerializer <bool> >();
            var mockRestSerializer  = new Mock <IBsonSerializer <Tuple <int> > >();

            var subject = new TupleSerializer <bool, int, bool, int, bool, int, bool, Tuple <int> >(
                mockItem1Serializer.Object,
                mockItem2Serializer.Object,
                mockItem3Serializer.Object,
                mockItem4Serializer.Object,
                mockItem5Serializer.Object,
                mockItem6Serializer.Object,
                mockItem7Serializer.Object,
                mockRestSerializer.Object);

            Assert.Same(mockItem1Serializer.Object, subject.Item1Serializer);
            Assert.Same(mockItem2Serializer.Object, subject.Item2Serializer);
            Assert.Same(mockItem3Serializer.Object, subject.Item3Serializer);
            Assert.Same(mockItem4Serializer.Object, subject.Item4Serializer);
            Assert.Same(mockItem5Serializer.Object, subject.Item5Serializer);
            Assert.Same(mockItem6Serializer.Object, subject.Item6Serializer);
            Assert.Same(mockItem7Serializer.Object, subject.Item7Serializer);
            Assert.Same(mockRestSerializer.Object, subject.RestSerializer);
        }
예제 #4
0
        public void SetDelimiter_ValidCustomDelimiter_SetsCustomDelimiter()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >()
                      .SetDelimiter(":");

            Assert.Equal(":", ser._delimiter);
        }
예제 #5
0
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer <bool>();

            var subject = new TupleSerializer <bool>();

            Assert.Same(boolSerializer, subject.Item1Serializer);
        }
        public void GetStringValue_Triad_ReturnsSerializedStringUsingDefaultDelimiter()
        {
            var ser = new TupleSerializer<Tuple<string, string, string>>();

            var str = ser.GetStringValue(new Tuple<string, string, string>("EUR", "EUR", "EUR"));

            Assert.Equal("EUR-EUR-EUR", str);
        }
        public void GetTupleFrom_StringRepresentingTriad_ReturnsDeserializedTriad()
        {
            var ser = new TupleSerializer<Tuple<string, string, string>>();

            var tuple = ser.GetTupleFrom("EUR-EUR-EUR");

            Assert.Equal(new Tuple<string, string, string>("EUR", "EUR", "EUR"), tuple);
        }
        public void GetTupleFrom_StringRepresentingPair_DeserializesToInheritedObject()
        {
            var ser = new TupleSerializer<ObjectThatInheritsFromTuple>();

            var tuple = ser.GetTupleFrom("EUR-EUR");

            Assert.Equal(new ObjectThatInheritsFromTuple("EUR", "EUR"), tuple);
        }
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer<bool>();

            var subject = new TupleSerializer<bool>();

            Assert.That(subject.Item1Serializer, Is.SameAs(boolSerializer));
        }
예제 #10
0
        public void GetTupleFrom_StringRepresentingPair_DeserializesToInheritedObject()
        {
            var ser = new TupleSerializer <ObjectThatInheritsFromTuple>();

            var tuple = ser.GetTupleFrom("EUR-EUR");

            Assert.Equal(new ObjectThatInheritsFromTuple("EUR", "EUR"), tuple);
        }
예제 #11
0
        public void GetTupleFrom_StringRepresentingTriad_ReturnsDeserializedTriad()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >();

            var tuple = ser.GetTupleFrom("EUR-EUR-EUR");

            Assert.Equal(new Tuple <string, string, string>("EUR", "EUR", "EUR"), tuple);
        }
예제 #12
0
        public void GetStringValue_Triad_ReturnsSerializedStringUsingDefaultDelimiter()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >();

            var str = ser.GetStringValue(new Tuple <string, string, string>("EUR", "EUR", "EUR"));

            Assert.Equal("EUR-EUR-EUR", str);
        }
        public void constructor_with_serializers_should_initialize_instance()
        {
            var item1Serializer = Substitute.For <IBsonSerializer <bool> >();

            var subject = new TupleSerializer <bool>(
                item1Serializer);

            Assert.That(subject.Item1Serializer, Is.SameAs(item1Serializer));
        }
예제 #14
0
        public void constructor_with_serializers_should_initialize_instance()
        {
            var mockItem1Serializer = new Mock<IBsonSerializer<bool>>();

            var subject = new TupleSerializer<bool>(
                mockItem1Serializer.Object);

            Assert.Same(mockItem1Serializer.Object, subject.Item1Serializer);
        }
예제 #15
0
        public void GetTupleFrom_StringRepresentingTriadWithCustomDelimiter_ReturnsDeserializedTriad()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >()
                      .SetDelimiter(":");

            var tuple = ser.GetTupleFrom("EUR:EUR:EUR");

            Assert.Equal(new Tuple <string, string, string>("EUR", "EUR", "EUR"), tuple);
        }
예제 #16
0
        public void GetStringValue_TriadWithCustomDelimiter_ReturnsSerializedStringUsingCustomDelimiter()
        {
            var ser = new TupleSerializer <Tuple <string, string, string> >()
                      .SetDelimiter(":");

            var str = ser.GetStringValue(new Tuple <string, string, string>("EUR", "EUR", "EUR"));

            Assert.Equal("EUR:EUR:EUR", str);
        }
예제 #17
0
        public void constructor_with_serializers_should_initialize_instance()
        {
            var mockItem1Serializer = new Mock <IBsonSerializer <bool> >();

            var subject = new TupleSerializer <bool>(
                mockItem1Serializer.Object);

            Assert.Same(mockItem1Serializer.Object, subject.Item1Serializer);
        }
        public void constructor_with_serializers_should_initialize_instance()
        {
            var item1Serializer = Substitute.For<IBsonSerializer<bool>>();

            var subject = new TupleSerializer<bool>(
                item1Serializer);

            Assert.That(subject.Item1Serializer, Is.SameAs(item1Serializer));
        }
        public void GetStringValue_TriadWithCustomDelimiter_ReturnsSerializedStringUsingCustomDelimiter()
        {
            var ser = new TupleSerializer<Tuple<string, string, string>>()
                .SetDelimiter(":");

            var str = ser.GetStringValue(new Tuple<string, string, string>("EUR", "EUR", "EUR"));

            Assert.Equal("EUR:EUR:EUR", str);
        }
        public void GetTupleFrom_StringRepresentingTriadWithCustomDelimiter_ReturnsDeserializedTriad()
        {
            var ser = new TupleSerializer<Tuple<string, string, string>>()
                .SetDelimiter(":");

            var tuple = ser.GetTupleFrom("EUR:EUR:EUR");

            Assert.Equal(new Tuple<string, string, string>("EUR", "EUR", "EUR"), tuple);
        }
예제 #21
0
        public void Constructor_CacheInjection_SetsInternalCacheReferences()
        {
            var serCache   = new ConcurrentDictionaryCache <Tuple <string>, string>();
            var deSerCache = new ConcurrentDictionaryCache <string, Tuple <string> >();

            var ser = new TupleSerializer <Tuple <string> >(serCache, deSerCache);

            Assert.Equal(ser._serializationCache, serCache);
            Assert.Equal(ser._deserializationCache, deSerCache);
        }
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer <bool>();
            var intSerializer  = BsonSerializer.LookupSerializer <int>();

            var subject = new TupleSerializer <bool, int>();

            Assert.That(subject.Item1Serializer, Is.SameAs(boolSerializer));
            Assert.That(subject.Item2Serializer, Is.SameAs(intSerializer));
        }
    static void Main(string[] args)
    {
        var x          = Tuple.Create(Guid.NewGuid(), new[] { 1, 2, 3, 4, 5, 6 });
        var serializer = TupleSerializer <Tuple <Guid, int[]> > .Create();

        var sb = new StringBuilder();

        using (var writer = XmlWriter.Create(sb))
        {
            serializer.WriteObject(writer, x);
            writer.Flush();
            Console.WriteLine(sb.ToString());
        }
    }
예제 #24
0
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer <bool>();
            var intSerializer  = BsonSerializer.LookupSerializer <int>();
            var restSerializer = BsonSerializer.LookupSerializer <Tuple <int> >();

            var subject = new TupleSerializer <bool, int, bool, int, bool, int, bool, Tuple <int> >();

            Assert.Same(boolSerializer, subject.Item1Serializer);
            Assert.Same(intSerializer, subject.Item2Serializer);
            Assert.Same(boolSerializer, subject.Item3Serializer);
            Assert.Same(intSerializer, subject.Item4Serializer);
            Assert.Same(boolSerializer, subject.Item5Serializer);
            Assert.Same(intSerializer, subject.Item6Serializer);
            Assert.Same(boolSerializer, subject.Item7Serializer);
            Assert.Same(restSerializer, subject.RestSerializer);
        }
        public void constructor_with_serializers_should_initialize_instance()
        {
            var item1Serializer = Substitute.For<IBsonSerializer<bool>>();
            var item2Serializer = Substitute.For<IBsonSerializer<int>>();
            var item3Serializer = Substitute.For<IBsonSerializer<bool>>();
            var item4Serializer = Substitute.For<IBsonSerializer<int>>();
            var item5Serializer = Substitute.For<IBsonSerializer<bool>>();
            var item6Serializer = Substitute.For<IBsonSerializer<int>>();
            var item7Serializer = Substitute.For<IBsonSerializer<bool>>();
            var restSerializer = Substitute.For<IBsonSerializer<Tuple<int>>>();

            var subject = new TupleSerializer<bool, int, bool, int, bool, int, bool, Tuple<int>>(
                item1Serializer,
                item2Serializer,
                item3Serializer,
                item4Serializer,
                item5Serializer,
                item6Serializer,
                item7Serializer,
                restSerializer);

            Assert.That(subject.Item1Serializer, Is.SameAs(item1Serializer));
            Assert.That(subject.Item2Serializer, Is.SameAs(item2Serializer));
            Assert.That(subject.Item3Serializer, Is.SameAs(item3Serializer));
            Assert.That(subject.Item4Serializer, Is.SameAs(item4Serializer));
            Assert.That(subject.Item5Serializer, Is.SameAs(item5Serializer));
            Assert.That(subject.Item6Serializer, Is.SameAs(item6Serializer));
            Assert.That(subject.Item7Serializer, Is.SameAs(item7Serializer));
            Assert.That(subject.RestSerializer, Is.SameAs(restSerializer));
        }
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer<bool>();
            var intSerializer = BsonSerializer.LookupSerializer<int>();
            var restSerializer = BsonSerializer.LookupSerializer<Tuple<int>>();

            var subject = new TupleSerializer<bool, int, bool, int, bool, int, bool, Tuple<int>>();

            Assert.That(subject.Item1Serializer, Is.SameAs(boolSerializer));
            Assert.That(subject.Item2Serializer, Is.SameAs(intSerializer));
            Assert.That(subject.Item3Serializer, Is.SameAs(boolSerializer));
            Assert.That(subject.Item4Serializer, Is.SameAs(intSerializer));
            Assert.That(subject.Item5Serializer, Is.SameAs(boolSerializer));
            Assert.That(subject.Item6Serializer, Is.SameAs(intSerializer));
            Assert.That(subject.Item7Serializer, Is.SameAs(boolSerializer));
            Assert.That(subject.RestSerializer, Is.SameAs(restSerializer));
        }
예제 #27
0
        public void GetTupleFrom_TuplePairSerializerGetsTupleTriad_ThrowsException()
        {
            var ser = new TupleSerializer <Tuple <string, string> >();

            Assert.Throws <InvalidOperationException>(() => ser.GetTupleFrom("EUR-EUR-EUR"));
        }
        public void Constructor_CacheInjection_SetsInternalCacheReferences()
        {
            var serCache = new ConcurrentDictionaryCache<Tuple<string>, string>();
            var deSerCache = new ConcurrentDictionaryCache<string, Tuple<string>>();

            var ser = new TupleSerializer<Tuple<string>>(serCache, deSerCache);

            Assert.Equal(ser._serializationCache, serCache);
            Assert.Equal(ser._deserializationCache, deSerCache);
        }
 public void GetTupleFrom_TuplePairSerializerGetsTupleTriad_ThrowsException()
 {
     var ser = new TupleSerializer<Tuple<string, string>>();
     Assert.Throws<InvalidOperationException>(() => ser.GetTupleFrom("EUR-EUR-EUR"));
 }
예제 #30
0
        public void constructor_with_no_arguments_should_initialize_instance()
        {
            var boolSerializer = BsonSerializer.LookupSerializer<bool>();
            var intSerializer = BsonSerializer.LookupSerializer<int>();

            var subject = new TupleSerializer<bool, int, bool, int, bool, int>();

            Assert.Same(boolSerializer, subject.Item1Serializer);
            Assert.Same(intSerializer, subject.Item2Serializer);
            Assert.Same(boolSerializer, subject.Item3Serializer);
            Assert.Same(intSerializer, subject.Item4Serializer);
            Assert.Same(boolSerializer, subject.Item5Serializer);
            Assert.Same(intSerializer, subject.Item6Serializer);
        }
 public void SetDelimiter_InvalidCustomDelimiter_DoesNotSetCustomDelimiter()
 {
     var ser = new TupleSerializer<Tuple<string, string, string>>()
         .SetDelimiter(string.Empty);
     Assert.Equal("-", ser._delimiter);
 }
 public void SetDelimiter_ValidCustomDelimiter_SetsCustomDelimiter()
 {
     var ser = new TupleSerializer<Tuple<string, string, string>>()
         .SetDelimiter(":");
     Assert.Equal(":", ser._delimiter);
 }
예제 #33
0
        public void constructor_with_serializers_should_initialize_instance()
        {
            var mockItem1Serializer = new Mock<IBsonSerializer<bool>>();
            var mockItem2Serializer = new Mock<IBsonSerializer<int>>();
            var mockItem3Serializer = new Mock<IBsonSerializer<bool>>();
            var mockItem4Serializer = new Mock<IBsonSerializer<int>>();
            var mockItem5Serializer = new Mock<IBsonSerializer<bool>>();
            var mockItem6Serializer = new Mock<IBsonSerializer<int>>();
            var mockItem7Serializer = new Mock<IBsonSerializer<bool>>();
            var mockRestSerializer = new Mock<IBsonSerializer<Tuple<int>>>();

            var subject = new TupleSerializer<bool, int, bool, int, bool, int, bool, Tuple<int>>(
                mockItem1Serializer.Object,
                mockItem2Serializer.Object,
                mockItem3Serializer.Object,
                mockItem4Serializer.Object,
                mockItem5Serializer.Object,
                mockItem6Serializer.Object,
                mockItem7Serializer.Object,
                mockRestSerializer.Object);

            Assert.Same(mockItem1Serializer.Object, subject.Item1Serializer);
            Assert.Same(mockItem2Serializer.Object, subject.Item2Serializer);
            Assert.Same(mockItem3Serializer.Object, subject.Item3Serializer);
            Assert.Same(mockItem4Serializer.Object, subject.Item4Serializer);
            Assert.Same(mockItem5Serializer.Object, subject.Item5Serializer);
            Assert.Same(mockItem6Serializer.Object, subject.Item6Serializer);
            Assert.Same(mockItem7Serializer.Object, subject.Item7Serializer);
            Assert.Same(mockRestSerializer.Object, subject.RestSerializer);
        }