public void MetadataWithUserImplementation() { Client2 client = new Client2("Bill", new LocalDate(2000, 04, 25)) .SetMetadata(new EntityMetadata("Database")) .SetMetadata("AttachedProperty", 42); var entityMetadata = client.GetMetadata <EntityMetadata>(); entityMetadata.Should().NotBeNull(); entityMetadata.Source.Should().Be("Database"); client.GetMetadata <int>("AttachedProperty").Should().Be(42); // Get metadata for client IPropertyContainer metadata = client.Metadata; metadata.Properties.Count.Should().Be(2); IPropertyContainer propertyContainer = client.FreezeMetadata(); propertyContainer.Should().BeOfType <PropertyContainer>(); }