public void StructureTypeWithValueToObjectContextTest() { var contract = VerifiableObjectContractManager.Resolve <NiceStruct>(); var @struct = new NiceStruct("NiceBoat1000", 100); var context1 = contract.WithInstance(@struct); var context2 = contract.WithInstance(@struct, "NiceStruct"); context1.InstanceName.ShouldBe("Instance"); context2.InstanceName.ShouldBe("NiceStruct"); context1.GetValues().Count().ShouldBe(2); context2.GetValues().Count().ShouldBe(2); context1.GetValue(0).MemberName.ShouldBe("Name"); context2.GetValue(0).MemberName.ShouldBe("Name"); context1.GetValue(1).MemberName.ShouldBe("Age"); context2.GetValue(1).MemberName.ShouldBe("Age"); context1.GetValue("Name").Value.ShouldBe("NiceBoat1000"); context2.GetValue("Name").Value.ShouldBe("NiceBoat1000"); context1.GetValue("Age").Value.ShouldBe(100); context2.GetValue("Age").Value.ShouldBe(100); }
public void StructAlloc() { for (int i = 0; i < AllocationCount; i++) { StructList[i] = new NiceStruct(i, i); } }
public void StructsSum() { int itemASum = 0, itemBSum = 0; for (int i = 0; i < StructList.Length; i++) { ref NiceStruct reference = ref StructList[i]; itemASum += reference.NumberA; itemBSum += reference.NumberB; }
public void ToSetValueIntoStructWithoutSilenceModeTest() { var options = ObjectVisitorOptions.Default.With(x => x.SilenceIfNotWritable = false); var model = new NiceStruct("Alex", 23, DateTime.Today, Country.China, true); var v = ObjectVisitor.Create(model, options); v.ShouldNotBeNull(); v["Name"].ShouldBe("Alex"); Assert.Throws <InvalidOperationException>(() => v["Name"] = "Lewis"); }
public void ToGetValueFromStructTest() { var model = new NiceStruct("Alex", 23, DateTime.Today, Country.China, true); var v = ObjectVisitor.Create(model); v.ShouldNotBeNull(); v["Name"].ShouldBe("Alex"); v["Age"].ShouldBe(23); v["Birthday"].ShouldBe(DateTime.Today); v["Country"].ShouldBe(Country.China); }
public void ToSetValueIntoStructWithSilenceModeTest() { var model = new NiceStruct("Alex", 23, DateTime.Today, Country.China, true); var v = ObjectVisitor.Create(model); v.ShouldNotBeNull(); v["Name"].ShouldBe("Alex"); v["Name"] = "Lewis"; v["Name"].ShouldBe("Alex"); // struct is readonly }