public void Can_Get_Details_For_Instance() { var containerManager = new ContainerManager(); var testObject = new TestClass { NumberProperty = 123, StringProperty = "abc" }; containerManager.AddObjectToContainer("container", testObject, "obj"); var reference = containerManager.GetInstancesInContainer("container") .Single(x => x.Name == "obj"); var details = containerManager.GetInstanceDetails(reference.InstanceId); details.Should().NotBeNull(); details.InstanceId.Should().Be(reference.InstanceId); details.Name.Should().Be(reference.Name); details.Properties.Should().NotBeNull(); details.Properties.Length.Should().Be(2); var stringProperty = details.Properties.Single(x => x.Name == nameof(TestClass.StringProperty)); stringProperty.TypeName.Should().Be(typeof(string).FullName); stringProperty.ValueAsString.Should().Be(testObject.StringProperty); var numberProperty = details.Properties.Single(x => x.Name == nameof(TestClass.NumberProperty)); numberProperty.TypeName.Should().Be(typeof(int).FullName); numberProperty.ValueAsString.Should().Be(testObject.NumberProperty.ToString()); }
public void Can_Tell_If_Properties_Are_Read_Or_Write_Only() { var containerManager = new ContainerManager(); var testObject = new ReadWriteOnlyTestClass { WriteOnlyProperty = 33 }; containerManager.AddObjectToContainer("container", testObject, "obj"); var reference = containerManager.GetInstancesInContainer("container") .Single(x => x.Name == "obj"); var details = containerManager.GetInstanceDetails(reference.InstanceId); details.Properties.Length.Should().Be(2); var readProperty = details.Properties.Single(x => x.Name == nameof(ReadWriteOnlyTestClass.ReadOnlyProperty)); readProperty.IsReadable.Should().BeTrue(); readProperty.IsWritable.Should().BeFalse(); readProperty.ValueAsString.Should().Be("33"); var writeProperty = details.Properties.Single(x => x.Name == nameof(ReadWriteOnlyTestClass.WriteOnlyProperty)); writeProperty.IsReadable.Should().BeFalse(); writeProperty.IsWritable.Should().BeTrue(); writeProperty.ValueAsString.Should().BeNull(); }
public void Can_Mark_Instance_As_Child_Of_Another_Instance() { var containerManager = new ContainerManager(); var parentId = containerManager.AddObjectToContainer("container", this, "parent"); var childId = containerManager.AddObjectToContainer("container", this, "child", parentId); var details = containerManager.GetInstanceDetails(childId); details.ParentInstanceId.Should().Be(parentId); }
public void Indexer_Properties_Are_Ignored() { var containerManager = new ContainerManager(); var testObject = new IndexerClass(); containerManager.AddObjectToContainer("container", testObject, "obj"); var reference = containerManager.GetInstancesInContainer("container") .Single(x => x.Name == "obj"); var details = containerManager.GetInstanceDetails(reference.InstanceId); details.Properties.Length.Should().Be(0); }
public void Fields_Are_Included_In_Instance_Details() { var containerManager = new ContainerManager(); var testObject = new ClassWithField { IntField = 1 }; containerManager.AddObjectToContainer("container", testObject, "obj"); var reference = containerManager.GetInstancesInContainer("container") .Single(x => x.Name == "obj"); var details = containerManager.GetInstanceDetails(reference.InstanceId); details.Should().NotBeNull(); details.Properties.Length.Should().Be(1); details.Properties[0].Name.Should().Be(nameof(ClassWithField.IntField)); details.Properties[0].ValueAsString.Should().Be("1"); }
public InstanceDetails GetInstanceDetails(Guid instanceId) { return(_containerManager.GetInstanceDetails(instanceId)); }