Пример #1
0
        public void CopyLiteObjectValues_Should_ReturnPropertiesFromDerivedAndBasedType()
        {
            var testObject = new ExtendedDefaultsObject
            {
                Name    = "SomeName",
                Count   = 30,
                Title   = "SomeTitle",
                Indexed = false
            };
            var parentObject = new ExtendedDefaultsObject();

            var exception = Record.Exception(() =>
            {
                var service        = new LiteObjectService();
                dynamic liteObject = service.GetLiteObject(testObject, false);
                parentObject       = service.CopyLiteObjectValues(parentObject, liteObject, false);
            });

            // check correct properties
            Assert.Null(exception);
            Assert.NotNull(parentObject);

            Assert.Equal(testObject.Name, parentObject.Name);
            Assert.Equal(testObject.Count, parentObject.Count);
            Assert.Equal(testObject.Title, parentObject.Title);
            Assert.Equal(testObject.Indexed, parentObject.Indexed);
            Assert.Equal(testObject.Id, parentObject.Id);
            Assert.Equal(testObject.LastDateTime, parentObject.LastDateTime);
        }
Пример #2
0
        /// <summary>
        /// Read setting object from stream.
        /// </summary>
        /// <param name="userSettings">Object that should be deserialized.</param>
        /// <param name="stream">Stream object; could be file, memory, other.</param>
        public void Read(IUserSettings userSettings, Stream stream)
        {
            if (stream == null || userSettings == null)
            {
                return;
            }

            using (var reader = new StreamReader(stream))
            {
                try
                {
                    Logger?.Log("Deserialize user settings");

                    var liteUserSettingsType = LiteObjectService.GetLiteObjectType(userSettings);
                    if (liteUserSettingsType == null)
                    {
                        return;
                    }
                    var sourceSettings = (new XmlSerializer(liteUserSettingsType)).Deserialize(reader);
                    LiteObjectService.CopyLiteObjectValues(userSettings, sourceSettings);
                }
                catch (InvalidOperationException)
                { }
            }
        }
Пример #3
0
        public void CopyLiteObjectValues_Should_ReturnObjectWithAllProperties(bool top)
        {
            var testObject = new DefaultsObject
            {
                Name  = "SomeName",
                Count = 30,
                Title = "SomeTitle"
            };
            var parentObject = new DefaultsObject();

            var exception = Record.Exception(() =>
            {
                var service        = new LiteObjectService();
                dynamic liteObject = service.GetLiteObject(testObject, top);
                parentObject       = service.CopyLiteObjectValues(parentObject, liteObject, top);
            });

            // check correct properties
            Assert.Null(exception);
            Assert.NotNull(parentObject);

            Assert.Equal(testObject.Name, parentObject.Name);
            Assert.Equal(testObject.Count, parentObject.Count);
            Assert.Equal(testObject.Indexed, parentObject.Indexed);
            Assert.Equal(testObject.Title, parentObject.Title);
            Assert.Equal(testObject.Id, parentObject.Id);
        }
Пример #4
0
        /// <summary>
        /// Write setting object to stream.
        /// </summary>
        /// <param name="userSettings">Object that should be serialized.</param>
        /// <param name="stream">Stream object; could be file, memory, other.</param>
        protected void Write(IUserSettings userSettings, Stream stream)
        {
            if (stream == null || userSettings == null)
            {
                return;
            }

            using (var writer = new StreamWriter(stream))
            {
                Logger?.Log("Serialize user settings");

                var liteUserSettings = LiteObjectService.GetLiteObject(userSettings);
                if (liteUserSettings == null)
                {
                    return;
                }
                (new XmlSerializer(liteUserSettings.GetType())).Serialize(writer, liteUserSettings);
            }
        }
Пример #5
0
        public void GetLiteObjectType_Should_ReturnTheSameValue()
        {
            SimpleObject testObject      = null;
            Type         liteObjectType1 = null;
            Type         liteObjectType2 = null;

            var exception = Record.Exception(() =>
            {
                testObject            = new SimpleObject();
                var liteObjectService = new LiteObjectService();
                liteObjectType1       = liteObjectService.GetLiteObjectType(testObject);
                liteObjectType2       = liteObjectService.GetLiteObjectType(testObject);
            });

            exception.Should().BeNull();
            testObject.Should().NotBeNull();
            liteObjectType1.Should().NotBeNull();
            liteObjectType2.Should().NotBeNull();
            liteObjectType1.Should().BeSameAs(liteObjectType2);
        }
Пример #6
0
        public void CopyLiteObjectValues_Should_ReturnNullOnWrongParentObject()
        {
            var testObject = new ExtendedDefaultsObject
            {
                Name  = "SomeName",
                Count = 30,
                Title = "SomeTitle"
            };
            object parentObject = new DefaultsObject();

            var exception = Record.Exception(() =>
            {
                var service    = new LiteObjectService();
                var liteObject = service.GetLiteObject(testObject);
                parentObject   = service.CopyLiteObjectValues(parentObject, liteObject);
            });

            // check correct properties
            Assert.Null(exception);
            Assert.Null(parentObject);
        }
Пример #7
0
        public void CopyLiteObjectValues_Should_ReturnNullOnDifferentTopValue(bool top1, bool top2)
        {
            var testObject = new ExtendedDefaultsObject
            {
                Name    = "SomeName",
                Count   = 30,
                Title   = "SomeTitle",
                Indexed = false
            };
            var parentObject = new ExtendedDefaultsObject();

            var exception = Record.Exception(() =>
            {
                var service        = new LiteObjectService();
                dynamic liteObject = service.GetLiteObject(testObject, top1);
                parentObject       = service.CopyLiteObjectValues(parentObject, liteObject, top2);
            });

            // check correct properties
            Assert.Null(exception);
            Assert.Null(parentObject);
        }