コード例 #1
0
        public void RemoveItemFromEntryDictionary()
        {
            // Arrange
            var dummyClass  = CreateDummyServer();
            var dummyClient = CreateDummyClient();

            // Act
            var serverEntry = EntryConvert.EncodeObject(dummyClass, new DefaultSerialization {
                FormatProvider = new CultureInfo("en-us")
            });

            dummyClient.Dictionary.Remove("2");

            var clientConverter = EntryToModelConverter.Create <EntryModelDummyClient>(new CultureInfo("en-us"));

            clientConverter.ToModel(dummyClient, serverEntry);

            // Assert
            Assert.AreEqual(1, dummyClient.Dictionary.Count());
            Assert.AreEqual("4.6", dummyClient.Dictionary["1"].Value);
            Assert.AreEqual("ValueA", dummyClient.Dictionary["1"].Enum);

            Assert.AreEqual(1, serverEntry.SubEntries[5].SubEntries.Count);
            Assert.AreEqual("4.6", serverEntry.SubEntries[5].SubEntries[0].SubEntries[0].Value.Current);
            Assert.AreEqual("ValueA", serverEntry.SubEntries[5].SubEntries[0].SubEntries[1].Value.Current);
        }
コード例 #2
0
        public void AddItemToEntryCollection()
        {
            // Arrange
            var dummyClass  = CreateDummyServer();
            var dummyClient = CreateDummyClient();

            // Act
            var serverEntry = EntryConvert.EncodeObject(dummyClass, new DefaultSerialization {
                FormatProvider = new CultureInfo("en-us")
            });

            dummyClient.Collection.Add(typeof(EntryModelSubClassDummyClient).Name);

            var clientConverter = EntryToModelConverter.Create <EntryModelDummyClient>(new CultureInfo("en-us"));

            clientConverter.ToModel(dummyClient, serverEntry);

            // Assert
            Assert.AreEqual(3, dummyClient.Collection.Count());
            Assert.IsNull(dummyClient.Collection.Last().Value);
            Assert.IsNull(dummyClient.Collection.Last().Enum);

            Assert.AreEqual(3, serverEntry.SubEntries[4].SubEntries.Count);
            Assert.AreEqual(typeof(EntryModelSubClassDummyClient).Name, serverEntry.SubEntries[4].SubEntries[2].Value.Current);
        }
コード例 #3
0
        public void ConvertFromModelAndBackToModel()
        {
            // Arrange
            var dummyClass       = CreateDummyServer();
            var dummyClassClient = new EntryModelDummyClient();

            // Act
            var serverEntry = EntryConvert.EncodeObject(dummyClass, new DefaultSerialization {
                FormatProvider = new CultureInfo("en-us")
            });

            var clientConverter = EntryToModelConverter.Create <EntryModelDummyClient>(new CultureInfo("en-us"));

            clientConverter.FromModel(serverEntry, dummyClassClient);

            // Assert
            // Check server to client conversion
            Assert.AreEqual(73, dummyClassClient.Value);
            Assert.AreEqual(true, dummyClassClient.HasAnything);
            Assert.AreEqual("0.5", dummyClassClient.Class.Value);
            Assert.AreEqual("ValueB", dummyClassClient.Class.Enum);
            Assert.AreEqual(2, dummyClassClient.Collection.Count());
            Assert.AreEqual(2, dummyClassClient.Dictionary.Count <EntryModelSubClassDummyClient>());
            Assert.AreEqual("15.8", dummyClassClient.Dictionary["1"].Value);
            Assert.AreEqual("Unset", dummyClassClient.Dictionary["1"].Enum);
            Assert.AreEqual("435.2", dummyClassClient.Dictionary["2"].Value);
            Assert.AreEqual("ValueA", dummyClassClient.Dictionary["2"].Enum);

            // Arrange
            dummyClassClient.Value       = 174;
            dummyClassClient.HasAnything = false;
            dummyClassClient.Class.Value = "15.8";
            dummyClassClient.Class.Enum  = "ValueA";
            dummyClassClient.Collection.Remove(dummyClassClient.Collection.First());
            dummyClassClient.Collection.First().Value = "90";
            dummyClassClient.Collection.First().Enum  = "ValueA";
            dummyClassClient.Dictionary["1"].Value = "10076";
            dummyClassClient.Dictionary["1"].Enum  = "ValueB";
            dummyClassClient.Dictionary.Remove("2");

            // Act
            clientConverter.ToModel(dummyClassClient, serverEntry);

            EntryConvert.UpdateInstance(dummyClass, serverEntry, new DefaultSerialization {
                FormatProvider = new CultureInfo("en-us")
            });

            // Assert
            // Check client to server conversion
            Assert.AreEqual(174, dummyClass.Value);
            Assert.AreEqual(false, dummyClass.HasAnything);
            Assert.AreEqual(15.8f, dummyClass.Class.Value);
            Assert.AreEqual(DummyEnum.ValueA, dummyClass.Class.Enum);
            Assert.AreEqual(1, dummyClass.Collection.Count);
            Assert.AreEqual(90f, dummyClass.Collection.First().Value);
            Assert.AreEqual(DummyEnum.ValueA, dummyClass.Collection.First().Enum);
            Assert.AreEqual(1, dummyClass.Dictionary.Count);
            Assert.AreEqual(10076f, dummyClass.Dictionary[1].Value);
            Assert.AreEqual(DummyEnum.ValueB, dummyClass.Dictionary[1].Enum);
        }