public void TestDeletePropertyObject()
        {
            var bag          = new LazyPropertyHolderBase();
            var propertyName = "Property-Name";

            bag.DeleteProperty(propertyName).IsFalse();
            bag.SetValue(propertyName, 10);
            bag.DeleteProperty(propertyName).IsTrue();
        }
        public void TestCurdWithSortOfDataTypes <T>(T value)
        {
            var propertyName = "Property-" + (value?.ToString() ?? "null");

            var bag = new LazyPropertyHolderBase();

            bag.SetValue(propertyName, value).Is(true);
            bag.PropertiesCount.Is(1);

            bag.GetValue <T>(propertyName).Is(value);
            bag.Properties.Is(new KeyValuePair <string, object>[] {
                new KeyValuePair <string, object>(propertyName, value),
            });

            bag.TryGetValue(propertyName, out T obtainedValue).Is(true);
            obtainedValue.Is(value);

            bag.DeleteProperty <T>(propertyName).Is(true);
            bag.PropertiesCount.Is(0);
        }