Пример #1
0
        public void MultiStateSerializer_Deserialise()
        {
            // 1. Arrange
            var options = new CosmosDBStorageOptions
            {
                JsonSerializerSettings = new JsonSerializerSettings()
            };
            var hasher     = new HashFunction();
            var serializer = new MultiStateSerializer(options, hasher);

            var stateType   = typeof(TestState);
            var stateValues = GetTestData();

            // 2. Act
            var result = serializer.Deserialize(stateType, null, stateValues);

            // 3. Assert
            var state = result as TestState;

            Assert.NotNull(state);
            Assert.Equal("TestString", state.Foo);
            Assert.Equal(42, state.Bar);
            Assert.Equal(2, state.Baz?.Count);
            Assert.True(state.Baz["One"].FooBar);
            Assert.False(state.Baz["Two"].FooBar);
        }
Пример #2
0
        public void MultiStateSerializer_Serialise()
        {
            // 1. Arrange
            var options = new CosmosDBStorageOptions
            {
                JsonSerializerSettings = new JsonSerializerSettings()
            };
            var hasher     = new HashFunction();
            var serializer = new MultiStateSerializer(options, hasher);

            var state = new TestState
            {
                Foo = "TestString",
                Bar = 42,
                Baz = new Dictionary <string, TestLookupState>
                {
                    {
                        "One", new TestLookupState
                        {
                            FooBar = true
                        }
                    },
                    {
                        "Two", new TestLookupState
                        {
                            FooBar = false
                        }
                    },
                }
            };

            // 2. Act
            var result = serializer.Serialize(state);

            // 3. Assert
            Assert.NotNull(result);
        }