public void ChangeTrackerIterator_InvokeDispose_Test()
        {
            //arrange
            ChangeTrackerIterator actual;

            actual = ChangeTrackerIterator.Create <Master>(GetFakeData());

            PrivateObject privateObject = new PrivateObject(actual);


            //act
            List <IObjectWithChangeTracker> items;

            items = (List <IObjectWithChangeTracker>)privateObject.GetField("_items");

            //assert
            Assert.IsTrue(items.Count > 0);

            //act
            actual.Dispose();
            items = (List <IObjectWithChangeTracker>)privateObject.GetField("_items");

            //assert
            Assert.IsTrue(items.Count == 0);
        }
        /// <summary>
        ///A test for Create
        ///</summary>
        public void CreateTestHelper <TEntity>(TEntity entity)
            where TEntity : IObjectWithChangeTracker
        {
            ChangeTrackerIterator actual;

            actual = ChangeTrackerIterator.Create <TEntity>(entity);
            Assert.IsNotNull(actual);
        }
        public void ChangeTrackerIterator_CheckGraph_Test()
        {
            //Arrange
            Master fake = GetFakeData();
            ChangeTrackerIterator iterator = ChangeTrackerIterator.Create <Master>(fake);

            //Act
            PrivateObject privateObject           = new PrivateObject(iterator);
            List <IObjectWithChangeTracker> items = (List <IObjectWithChangeTracker>)privateObject.GetField("_items");

            //Assert
            Assert.IsTrue(items.Count == 3);
            Assert.IsTrue(items.Contains(fake));
            Assert.IsTrue(items.Contains(fake.ToOne));
            Assert.IsTrue(items.Contains(fake.ToMany[0]));
        }