public void CanAddSameObjectWithManyNames()
        {
            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection();
            object obj = new object();

            collection.Add(obj, "Foo");
            collection.Add(obj, "Bar");

            Assert.AreEqual(1, collection.LifetimeContainer.Count);
            Assert.AreSame(obj, collection.Get("Foo"));
            Assert.AreSame(obj, collection.Get("Bar"));
        }
        public void GetFiltersReturnedCollectionWithPredicate()
        {
            Predicate <object> filter = delegate(object obj) { return(obj is MockDataObject); };

            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection(SearchMode.Local, null, filter);

            object         o1 = collection.AddNew <object>("One");
            MockDataObject o2 = collection.AddNew <MockDataObject>("Two");

            Assert.IsNull(collection.Get("One"));
            Assert.AreSame(o2, collection.Get("Two"));
        }
        public void CanAddNamedObjectAndFindItByName()
        {
            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection();

            object obj = collection.AddNew <object>("foo");

            Assert.AreSame(obj, collection.Get("foo"));
        }
        public void GetCanSearchUpTheLocatorChain()
        {
            TestableManagedObjectCollection <object> parentCollection = CreateManagedObjectCollection(SearchMode.Up);
            TestableManagedObjectCollection <object> childCollection  = new TestableManagedObjectCollection <object>(parentCollection);

            object obj = parentCollection.AddNew <object>("Foo");

            Assert.AreSame(obj, childCollection.Get("Foo"));
        }
        public void AddNewAddsToLocatorAndLifetimeContainer()
        {
            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection();

            object obj = collection.AddNew(typeof(object), "Foo");

            Assert.IsTrue(collection.LifetimeContainer.Contains(obj));
            Assert.AreEqual(obj, collection.Get("Foo"));
        }
        public void GetDoesNotReturnReplacedObject()
        {
            TestableManagedObjectCollection <object> parentCollection = CreateManagedObjectCollection(SearchMode.Up);
            TestableManagedObjectCollection <object> childCollection  = new TestableManagedObjectCollection <object>(parentCollection);

            object obj1 = parentCollection.AddNew <object>("Foo");
            object obj2 = childCollection.AddNew <object>("Foo");

            Assert.AreSame(obj2, childCollection.Get("Foo"));
        }
        public void GetDoesNotCheckParentCollection()
        {
            TestableManagedObjectCollection <object> parentCollection = CreateManagedObjectCollection();
            TestableManagedObjectCollection <object> childCollection  = new TestableManagedObjectCollection <object>(parentCollection);
            object obj = new object();

            parentCollection.Add(obj, "Foo");

            Assert.IsNull(childCollection.Get("Foo"));
        }
        public void GetForObjectNotInCollectionReturnsNull()
        {
            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection();

            Assert.IsNull(collection.Get("bar"));
        }
        public void GetWithNullIDThrows()
        {
            TestableManagedObjectCollection <object> collection = CreateManagedObjectCollection();

            collection.Get(null);
        }