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); }
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); }
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 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> >(); }
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); }
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); }
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>(); }
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); }
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>[]>(); }
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."); }
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(); }
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."); }
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); }
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); }
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."); }
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); }
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); }
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); }
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); }