コード例 #1
0
        public void WhenDeserializeAndSuppliedStrategy()
        {
            var mockRequest  = "{\"Name\":\"Bond. James Bond\",\"Id\":\"007\"}";
            var mockResponse = new SecretAgent {
                Id = "007", Name = "Bond. James Bond"
            };

            var mockStrategy = new Mock <ISerializationStrategy>();

            mockStrategy.Setup(m => m.Deserialize <SecretAgent>(mockRequest)).Returns(mockResponse);

            var opt = new SerializationOptions
            {
                Serialization = mockStrategy.Object
            };

            var req1 = mockRequest;
            var val1 = new StringValue(req1, opt);
            var res1 = val1.Deserialize <SecretAgent>().Value;

            res1.Should().NotBeNull();
            res1.Name.Should().Be("Bond. James Bond");
            res1.Id.Should().Be("007");
            mockStrategy.Verify(m => m.Deserialize <SecretAgent>(req1), Times.Once);
        }
コード例 #2
0
 public void Create(SecretAgent agent)
 {
     Agents.Add(new SecretAgent()
     {
         Id = Agents.Max(x => x.Id) + 1, Name = agent.Name, Alias = agent.Alias
     });
 }
コード例 #3
0
        public void TestXmlSerializationStrategyWithCustomSettings()
        {
            var customSettings = new JsonSerializerSettings
            {
                Formatting        = Formatting.None,
                NullValueHandling = NullValueHandling.Ignore,
                ContractResolver  = new DefaultContractResolver
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                }
            };

            var strategy = new XmlSerializationStrategy(customSettings);

            var serializeRequest = new SecretAgent {
                Id = "007", Name = "Bond. James Bond"
            };

            var serializeResponse = strategy.Serialize(serializeRequest);
            var expectedResponse  = "<Root><name>Bond. James Bond</name><id>007</id></Root>";

            serializeResponse.Equals(expectedResponse).Should().BeTrue();

            var deserializeRequest  = serializeResponse;
            var deserializeResponse = strategy.Deserialize <SecretAgent>(deserializeRequest);

            deserializeResponse.Should().NotBeNull();
            deserializeResponse.Name.Should().Be("Bond. James Bond");
            deserializeResponse.Id.Should().Be("007");
        }
コード例 #4
0
        public void WhenSerializeAndDefaultStrategy()
        {
            var req1 = new SecretAgent {
                Id = "007", Name = "Bond. James Bond"
            };
            var val1 = new TypeValue <SecretAgent>(req1, null);
            var res1 = val1.Serialize().Value;

            res1.Should().NotBeNull();
            res1.Should().Be("{\"Name\":\"Bond. James Bond\",\"Id\":\"007\"}");
        }
コード例 #5
0
        public void TestJsonSerializationStrategyWithDefaultSettings()
        {
            var strategy = new JsonSerializationStrategy();

            var serializeRequest = new SecretAgent {
                Id = "007", Name = "Bond. James Bond"
            };

            var serializeResponse = strategy.Serialize(serializeRequest);
            var expectedResponse  = "{\"Name\":\"Bond. James Bond\",\"Id\":\"007\",\"Drinks\":null}";

            serializeResponse.Equals(expectedResponse).Should().BeTrue();

            var deserializeRequest  = serializeResponse;
            var deserializeResponse = strategy.Deserialize <SecretAgent>(deserializeRequest);

            deserializeResponse.Should().NotBeNull();
            deserializeResponse.Name.Should().Be("Bond. James Bond");
            deserializeResponse.Id.Should().Be("007");
        }
コード例 #6
0
        public void TestXmlSerializationStrategyWithDefaultSettings()
        {
            var strategy = new XmlSerializationStrategy();

            var serializeRequest = new SecretAgent {
                Id = "007", Name = "Bond. James Bond"
            };

            var serializeResponse = strategy.Serialize(serializeRequest);
            var expectedResponse  = "<Root><Name>Bond. James Bond</Name><Id>007</Id><Drinks /></Root>";

            serializeResponse.Equals(expectedResponse).Should().BeTrue();

            var deserializeRequest  = serializeResponse;
            var deserializeResponse = strategy.Deserialize <SecretAgent>(deserializeRequest);

            deserializeResponse.Should().NotBeNull();
            deserializeResponse.Name.Should().Be("Bond. James Bond");
            deserializeResponse.Id.Should().Be("007");
        }
コード例 #7
0
        public void TestXmlSerializationStrategyWithArrayOfOneElement()
        {
            var strategy = new XmlSerializationStrategy();

            var serializeRequest = new SecretAgent {
                Id = "007", Name = "Bond. James Bond", Drinks = new string[] { "Martini" }
            };

            var serializeResponse = strategy.Serialize(serializeRequest);

            var arrayAttribute   = "json:Array=\"true\" xmlns:json=\"http://james.newtonking.com/projects/json\"";
            var expectedResponse = $"<Root><Name>Bond. James Bond</Name><Id>007</Id><Drinks {arrayAttribute}>Martini</Drinks></Root>";

            serializeResponse.Equals(expectedResponse).Should().BeTrue();

            var deserializeRequest  = serializeResponse;
            var deserializeResponse = strategy.Deserialize <SecretAgent>(deserializeRequest);

            deserializeResponse.Should().NotBeNull();
            deserializeResponse.Name.Should().Be("Bond. James Bond");
            deserializeResponse.Id.Should().Be("007");
            deserializeResponse.Drinks.Should().HaveCount(1);
            deserializeResponse.Drinks[0].Should().Be("Martini");
        }