private static void ProcessGenericEnumerable(Type type, ISpecification holder)
        {
            var isCollection = CollectionUtils.IsGenericCollection(type); // as opposed to IEnumerable
            var isQueryable  = CollectionUtils.IsGenericQueryable(type);
            var isSet        = CollectionUtils.IsSet(type);

            FacetUtils.AddFacet(new TypeOfFacetInferredFromGenerics(holder));

            IFacet facet;

            if (isQueryable)
            {
                facet = new GenericIQueryableFacet(holder, isSet);
            }
            else if (isCollection)
            {
                facet = new GenericCollectionFacet(holder, isSet);
            }
            else
            {
                facet = new GenericIEnumerableFacet(holder, isSet);
            }

            FacetUtils.AddFacet(facet);
        }
        public void GenericCollectionInitEmpty()
        {
            var testCollection        = new List <string>();
            var testCollection1       = new[] { "element2", "element3" };
            var testCollectionFacet   = new GenericCollectionFacet(specification);
            var testAdaptedCollection = AdapterFor(testCollection);

            Init(testCollectionFacet, testAdaptedCollection, testCollection, testCollection1);
        }
        public void GenericCollectionInitAllEmpty()
        {
            var testCollection        = new List <string>();
            var testCollection1       = new string[] { };
            var testCollectionFacet   = new GenericCollectionFacet(specification);
            var testAdaptedCollection = AdapterFor(testCollection);

            Init(testCollectionFacet, testAdaptedCollection, testCollection, testCollection1);
        }
        public void GenericCollectionSize()
        {
            var testCollection = new List <string> {
                "element1", "element2"
            };
            var testCollectionFacet   = new GenericCollectionFacet(specification);
            var testAdaptedCollection = AdapterFor(testCollection);

            Size(testCollectionFacet, testAdaptedCollection);
        }
        public void GenericCollectionNotIsSet()
        {
            ICollectionFacet testCollectionFacet = new GenericCollectionFacet(specification);

            Assert.IsFalse(testCollectionFacet.IsASet);
            testCollectionFacet = new GenericIEnumerableFacet(specification);
            Assert.IsFalse(testCollectionFacet.IsASet);
            testCollectionFacet = new GenericIQueryableFacet(specification);
            Assert.IsFalse(testCollectionFacet.IsASet);
        }
        public void GenericCollectionIsSet()
        {
            ICollectionFacet testCollectionFacet = new GenericCollectionFacet(specification, true);

            Assert.IsTrue(testCollectionFacet.IsASet);
            testCollectionFacet = new GenericIEnumerableFacet(specification, true);
            Assert.IsTrue(testCollectionFacet.IsASet);
            testCollectionFacet = new GenericIQueryableFacet(specification, true);
            Assert.IsTrue(testCollectionFacet.IsASet);
        }
        public void GenericCollectionGetEnumeratorFor()
        {
            var testCollection = new List <string> {
                "element1", "element2"
            };
            var testCollectionFacet   = new GenericCollectionFacet(specification);
            var testAdaptedCollection = AdapterFor(testCollection);

            ValidateCollection(testCollectionFacet, testAdaptedCollection, testCollection);
        }
        public void GenericCollectionPage()
        {
            var testCollection = new List <string> {
                "element1", "element2"
            };
            var testCollectionFacet = new GenericCollectionFacet(specification);
            INakedObjectAdapter testAdaptedCollection = AdapterFor(testCollection);

            Page(testCollectionFacet, testAdaptedCollection, "element1");
        }
        public void GenericCollectionInitToEmpty()
        {
            var testCollection = new List <string> {
                "element1", "element2"
            };
            var testCollection1     = new string[] { };
            var testCollectionFacet = new GenericCollectionFacet(specification);
            INakedObjectAdapter testAdaptedCollection = AdapterFor(testCollection);

            Init(testCollectionFacet, testAdaptedCollection, testCollection, testCollection1);
        }
        private void ProcessGenericEnumerable(Type type, ISpecification holder) {
            bool isCollection = CollectionUtils.IsGenericCollection(type); // as opposed to IEnumerable 
            bool isQueryable = CollectionUtils.IsGenericQueryable(type);
            bool isSet = CollectionUtils.IsSet(type);

            FacetUtils.AddFacet(new TypeOfFacetInferredFromGenerics(holder));

            IFacet facet;
            if (isQueryable) {
                facet = new GenericIQueryableFacet(holder, isSet);
            }
            else if (isCollection) {
                facet = new GenericCollectionFacet(holder, isSet);
            }
            else {
                facet = new GenericIEnumerableFacet(holder, isSet);
            }

            FacetUtils.AddFacet(facet);
        }
 public void GenericCollectionSize() {
     var testCollection = new List<string> {"element1", "element2"};
     var testCollectionFacet = new GenericCollectionFacet(specification);
     INakedObjectAdapter testAdaptedCollection = AdapterFor(testCollection);
     Size(testCollectionFacet, testAdaptedCollection);
 }
 public void GenericCollectionNotIsSet() {
     ICollectionFacet testCollectionFacet = new GenericCollectionFacet(specification);
     Assert.IsFalse(testCollectionFacet.IsASet);
     testCollectionFacet = new GenericIEnumerableFacet(specification);
     Assert.IsFalse(testCollectionFacet.IsASet);
     testCollectionFacet = new GenericIQueryableFacet(specification);
     Assert.IsFalse(testCollectionFacet.IsASet);
 }
 public void GenericCollectionIsSet() {
     ICollectionFacet testCollectionFacet = new GenericCollectionFacet(specification, true);
     Assert.IsTrue(testCollectionFacet.IsASet);
     testCollectionFacet = new GenericIEnumerableFacet(specification, true);
     Assert.IsTrue(testCollectionFacet.IsASet);
     testCollectionFacet = new GenericIQueryableFacet(specification, true);
     Assert.IsTrue(testCollectionFacet.IsASet);
 }
 public void GenericCollectionInitToEmpty() {
     var testCollection = new List<string> {"element1", "element2"};
     var testCollection1 = new string[] {};
     var testCollectionFacet = new GenericCollectionFacet(specification);
     INakedObjectAdapter testAdaptedCollection = AdapterFor(testCollection);
     Init(testCollectionFacet, testAdaptedCollection, testCollection, testCollection1);
 }
 public void GenericCollectionGetEnumeratorFor() {
     var testCollection = new List<string> {"element1", "element2"};
     var testCollectionFacet = new GenericCollectionFacet(specification);
     INakedObjectAdapter testAdaptedCollection = AdapterFor(testCollection);
     ValidateCollection(testCollectionFacet, testAdaptedCollection, testCollection);
 }