Esempio n. 1
0
        public void ComplexClassNull()
        {
            ComplexTestClass a = new ComplexTestClass
            {
                A = 123,
                B = "testString",
                C = NanoState.Ignore,
            };

            JObject target = new JObject();

            Serializer.Serialize((NewtonsoftJsonAdapter)target, a);

            AssertChildren(4, target);
            AssertAttribute("123", "A_", target);
            AssertAttribute("testString", "B", target);
            AssertAttribute("Ignore", "C", target);

            Assert.IsNull((JObject)target["F"]);

            ComplexTestClass b = Deserializer.Deserialize <ComplexTestClass>((NewtonsoftJsonAdapter)target);

            Assert.AreEqual(a.A, b.A);
            Assert.AreEqual(a.B, b.B);
            Assert.AreEqual(a.C, b.C);
            Assert.AreEqual(a.D, b.D);
        }
        public async Task <IActionResult> ComplexType1()
        {
            var cl1 = ClientManager.GetAllClients().FirstOrDefault();

            if (cl1 == null)
            {
                throw new Exception("No client found!");
            }


            var ct = new ComplexTestClass();

            ct.Name       = "Bernhard";
            ct.Age        = 99;
            ct.Ok         = true;
            ct.Timestamp  = DateTime.Now;
            ct.Properties = new Dictionary <string, object> {
                ["Dog1"]  = "Maggi",
                ["Dog2"]  = "Wilson",
                ["Wife"]  = true,
                ["Child"] = 1
            };

            cl1.GetTypedMethods <ITestClientMethods>().Complex1(ct);
            //InvokeScsmProxyClient(methods => methods.CreateObject(className, properties));
            return(Ok());
        }
        public void ComplexClassNull()
        {
            ComplexTestClass a = new ComplexTestClass
            {
                A = 123,
                B = "testString",
                C = NanoState.Ignore,
            };

            XmlDocument target = new XmlDocument();

            Serializer.Serialize((SystemXmlAdapter)target, a);

            Assert.AreEqual(0, target.DocumentElement.ChildNodes.Count);
            Assert.AreEqual("123", target.DocumentElement.GetAttribute("A_"));
            Assert.AreEqual("testString", target.DocumentElement.GetAttribute("B"));
            Assert.AreEqual("Ignore", target.DocumentElement.GetAttribute("C"));

            Assert.IsNull(GetElement(target, "D"));

            ComplexTestClass b = Deserializer.Deserialize <ComplexTestClass>((SystemXmlAdapter)target);

            Assert.AreEqual(a.A, b.A);
            Assert.AreEqual(a.B, b.B);
            Assert.AreEqual(a.C, b.C);
            Assert.AreEqual(a.D, b.D);
        }
Esempio n. 4
0
        public void ComplexClassNullValue()
        {
            ComplexTestClass a = new ComplexTestClass
            {
                A = 123,
                B = "testString",
                C = NanoState.Ignore,
            };

            JObject target = new JObject();
            SerializationSettings settings = new SerializationSettings();

            settings.SerializeNull = true;
            new Serializer(settings).SerializeObject((NewtonsoftJsonAdapter)target, a);

            AssertChildren(4, target);
            AssertAttribute("123", "A_", target);
            AssertAttribute("testString", "B", target);
            AssertAttribute("Ignore", "C", target);

            Assert.AreEqual(JTokenType.Null, target["F"].Type);

            ComplexTestClass b = Deserializer.Deserialize <ComplexTestClass>((NewtonsoftJsonAdapter)target);

            Assert.AreEqual(a.A, b.A);
            Assert.AreEqual(a.B, b.B);
            Assert.AreEqual(a.C, b.C);
            Assert.AreEqual(a.D, b.D);
        }
Esempio n. 5
0
        public void UpdateTest()
        {
            var repository = new InMemoryRepository <ComplexTestClass>(x => x.ID);
            var obj        = new ComplexTestClass()
            {
                IntValue = 1
            };

            repository.Insert(obj);
            repository.SaveChanges();

            repository.Update(new { IntValue = 2 }, obj.ID);
            repository.SaveChanges();

            var val = repository.Find(obj.ID).Object;

            Assert.AreEqual(2, val.IntValue);

            var updateObj = new { DateTimeValue = DateTime.MaxValue };

            repository.Update(updateObj, x => x.ComplexProperty, obj.ID);
            repository.SaveChanges();

            Assert.AreEqual(val.ComplexProperty.DateTimeValue, DateTime.MaxValue);
        }
Esempio n. 6
0
            public void ShouldReturnImmutable_WhenPropertyExists()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Ref("Things");

                // Assert
                result.Should().BeOfType <Immutable <SimpleTestClass> >();
            }
Esempio n. 7
0
            public void ShouldReturnValue_WhenPropertyExistsAndIsAValueType()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Value("Id");

                // Assert
                result.Should().Be(value.Id);
            }
Esempio n. 8
0
            public void ShouldReturnClonedObject_WhenCalled()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Emit();

                // Assert
                result.Should().BeEquivalentTo(value);
            }
Esempio n. 9
0
            public void ShouldReturnObjectWithSameType_WhenCalled()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Emit();

                // Assert
                result.Should().BeOfType <ComplexTestClass>();
            }
Esempio n. 10
0
            public void ShouldReturnArrayOfSameSize_WhenPropertyIsAnArray()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Array <SimpleTestClass>("SomeThings");

                // Assert
                result.Length.Should().Be(value.SomeThings.Length);
            }
Esempio n. 11
0
            public void ShouldReturnArrayOfImmutables_WhenPropertyIsAnArray()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Array <SimpleTestClass>("SomeThings");

                // Assert
                result.Should().BeOfType <IImmutable <SimpleTestClass>[]>();
            }
Esempio n. 12
0
            public void ShouldThrowException_WhenPropertyIsNotAnArray()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                Action result = () => immutable.Array <SimpleTestClass>("Things");

                // Assert
                result.Should().Throw <ArgumentException>().WithMessage("Property 'Things' is not an Array type.");
            }
Esempio n. 13
0
            public void ShouldNotAffectTheImmutable_WhenExtractFunctionTriesToAssign()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Extract(i => { i.Name = "My Name"; return(i.Things); });

                // Assert
                immutable.Value("Name").As <string>().Should().BeNull();
            }
Esempio n. 14
0
            public void ShouldThrowException_WhenExtractFunctionReturnsUnsupportedType()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                Action result = () => immutable.Extract(i => i.LotsOfInts.Where(l => l > 100));

                // Assert
                result.Should().Throw <InvalidOperationException>().WithMessage("*- Unable to clone interfaces. Use concrete types and implementations instead.");
            }
Esempio n. 15
0
            public void ShouldReturnValueOfPropertySelectByFunction_WhenCalled()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Extract(i => i.Things);

                // Assert
                result.Should().BeEquivalentTo(value.Things);
            }
Esempio n. 16
0
            public void ShouldReturnResultOfCheckFunction_WhenCalled(string name, bool expected)
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Check(i => i.Things.Prop2 == name);

                // Assert
                result.Should().Be(expected);
            }
Esempio n. 17
0
            public void ShouldThrowException_WhenPropertyDoesNotExist()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                Action result = () => immutable.Array <SimpleTestClass>("Thing");

                // Assert
                result.Should().Throw <ArgumentException>().WithMessage("Property 'Thing' does not exist on this object.");
            }
Esempio n. 18
0
            public void ShouldReturnClonedValue_WhenCalled()
            {
                // Arrange
                var value     = new ComplexTestClass();
                var immutable = new Immutable <ComplexTestClass>(value);

                // Act
                var result = immutable.Extract(i => i.Things);

                result.Prop1 = 75;

                // Assert
                value.Things.Prop1.Should().NotBe(75);
            }
        public void ComplexClass()
        {
            ComplexTestClass a = new ComplexTestClass
            {
                A = 123,
                B = "testString",
                C = NanoState.Ignore,
                F = new CustomConstructorTestClass("testString2", NanoState.Serialize, 333)
            };

            XmlDocument target = new XmlDocument();

            Serializer.Serialize((SystemXmlAdapter)target, a);

            Assert.AreEqual(1, target.DocumentElement.ChildNodes.Count);
            Assert.AreEqual("123", target.DocumentElement.GetAttribute("A_"));
            Assert.AreEqual("testString", target.DocumentElement.GetAttribute("B"));
            Assert.AreEqual("Ignore", target.DocumentElement.GetAttribute("C"));

            XmlElement fEl = GetElement(target, "F");

            Assert.NotNull(fEl);
            Assert.AreEqual(1, fEl.ChildNodes.Count);
            Assert.AreEqual(2, fEl.Attributes.Count);
            Assert.AreEqual("333", GetXmlValue(fEl, "A"));
            Assert.AreEqual("testString2", fEl.GetAttribute("B"));
            Assert.AreEqual("Serialize", fEl.GetAttribute("C"));

            ComplexTestClass b = Deserializer.Deserialize <ComplexTestClass>((SystemXmlAdapter)target);

            Assert.AreEqual(a.A, b.A);
            Assert.AreEqual(a.B, b.B);
            Assert.AreEqual(a.C, b.C);
            Assert.AreEqual(a.F.C, b.F.C);
            Assert.AreEqual(a.F.C, b.F.C);
            Assert.AreEqual(a.F.C, b.F.C);

            ComplexTestClass c = new ComplexTestClass();

            new Deserializer().FillObject(c, (SystemXmlAdapter)target);

            Assert.AreEqual(a.A, c.A);
            Assert.AreEqual(a.B, c.B);
            Assert.AreEqual(a.C, c.C);
            Assert.AreEqual(a.F.C, c.F.C);
            Assert.AreEqual(a.F.C, c.F.C);
            Assert.AreEqual(a.F.C, c.F.C);
        }
Esempio n. 20
0
        public void ComplexClass()
        {
            ComplexTestClass a = new ComplexTestClass
            {
                A = 123,
                B = "testString",
                C = NanoState.Ignore,
                F = new CustomConstructorTestClass("testString2", NanoState.Serialize, 333)
            };

            JObject target = new JObject();

            Serializer.Serialize((NewtonsoftJsonAdapter)target, a);

            AssertChildren(5, target);
            AssertAttribute("123", "A_", target);
            AssertAttribute("testString", "B", target);
            AssertAttribute("Ignore", "C", target);

            JObject fEl = (JObject)target["F"];

            Assert.NotNull(fEl);
            AssertChildren(3, fEl);
            AssertChild("333", "A", fEl);
            AssertAttribute("testString2", "B", fEl);
            AssertAttribute("Serialize", "C", fEl);

            ComplexTestClass b = Deserializer.Deserialize <ComplexTestClass>((NewtonsoftJsonAdapter)target);

            Assert.AreEqual(a.A, b.A);
            Assert.AreEqual(a.B, b.B);
            Assert.AreEqual(a.C, b.C);
            Assert.AreEqual(a.F.C, b.F.C);
            Assert.AreEqual(a.F.C, b.F.C);
            Assert.AreEqual(a.F.C, b.F.C);

            ComplexTestClass c = new ComplexTestClass();

            new Deserializer().FillObject(c, (NewtonsoftJsonAdapter)target);

            Assert.AreEqual(a.A, c.A);
            Assert.AreEqual(a.B, c.B);
            Assert.AreEqual(a.C, c.C);
            Assert.AreEqual(a.F.C, c.F.C);
            Assert.AreEqual(a.F.C, c.F.C);
            Assert.AreEqual(a.F.C, c.F.C);
        }
Esempio n. 21
0
        public void UpdateTest()
        {
            var repository = new InMemoryRepository<ComplexTestClass>(x => x.ID);
                var obj = new ComplexTestClass() { IntValue = 1 };
                repository.Insert(obj);
                repository.SaveChanges();

                repository.Update(new { IntValue = 2 }, obj.ID);
                repository.SaveChanges();

                var val = repository.Find(obj.ID).Object;
                Assert.AreEqual(2, val.IntValue);

                var updateObj = new { DateTimeValue = DateTime.MaxValue };
                repository.Update(updateObj, x => x.ComplexProperty, obj.ID);
                repository.SaveChanges();

                Assert.AreEqual(val.ComplexProperty.DateTimeValue, DateTime.MaxValue);
        }
        public void ComplexSerializationWorks()
        {
            var testClass = new ComplexTestClass
            {
                TestString = "Hello world, how are you?",
                ClassOnes  =
                {
                    new ComplexTestClass.SubClassOne {
                        SubKeyOne = "Hello"
                    },
                    new ComplexTestClass.SubClassOne {
                        SubKeyOne = "World"
                    },
                    new ComplexTestClass.SubClassOne {
                        SubKeyOne = "How"
                    },
                    new ComplexTestClass.SubClassOne {
                        SubKeyOne = "Are"
                    },
                    new ComplexTestClass.SubClassOne {
                        SubKeyOne = "You"
                    },
                },
                SC2 = new ComplexTestClass.SubClassTwo {
                    SubKeyOne   = "Hello world, how are you?",
                    SubKeyTwo   = DateTimeOffset.Now,
                    SubKeyThree = 17,
                    SubKeyFour  = 2.34f,
                }
            };

            var tomlString = TomletMain.TomlStringFrom(testClass);

            _testOutputHelper.WriteLine("Got TOML string:\n" + tomlString);

            var deserializedAgain = TomletMain.To <ComplexTestClass>(tomlString);

            Assert.Equal(testClass, deserializedAgain);
        }
Esempio n. 23
0
        internal void GetOracleParameters_Object_Metadata_ReturnsSubPropertyParameters(MetadataOracleNetTypeDefinition typedef, ComplexTestClass model, MetadataOracleNetTypeDefinition metaTypeDef, int startNumber)
        {
            var prop = typedef.Properties.OrderBy(c => c.Order).First();

            prop.NETProperty      = typeof(ComplexTestClass).GetProperty(nameof(ComplexTestClass.ObjectProp));
            prop.PropertyMetadata = metaTypeDef;

            var subProp = metaTypeDef.Properties.OrderBy(c => c.Order).First();

            subProp.NETProperty = typeof(SimpleTestClass).GetProperty(nameof(SimpleTestClass.Prop1));

            var metadata = new MetadataOracleObject <ComplexTestClass>(typedef, new MetadataOracleCommon());

            var actual = metadata.GetOracleParameters(model, startNumber);

            Assert.NotNull(actual);
            var oraProp = Assert.Single(actual);

            Assert.NotNull(oraProp);
            Assert.Equal($":{startNumber}", oraProp.ParameterName);
            Assert.Equal(ParameterDirection.Input, oraProp.Direction);
            Assert.Equal(model.ObjectProp.Prop1, oraProp.Value);
        }