public void EFLinqRepository_Delete_Throws_With_Invalid_ID()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository <Dog>(_efUnitOfWork, _cache.Object);
            var dog        = new Dog
            {
                ID   = TestConstants.EF_InvalidDogId,
                Age  = TestConstants.EF_DeleteDogAge,
                Name = TestConstants.EF_DeleteDogName
            };

            //Act
            var success = false;

            try
            {
                repository.Delete(dog);
                _efUnitOfWork.Commit();
                success = true;
            }
            catch (Exception)
            {
            }

            //Assert
            Assert.IsFalse(success);
        }
        public void EFLinqRepository_Delete_Deletes_Item_From_DataBase_With_Correct_ID()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository <Dog>(_efUnitOfWork, _cache.Object);
            var dog        = new Dog
            {
                ID   = TestConstants.EF_DeleteDogId,
                Age  = TestConstants.EF_DeleteDogAge,
                Name = TestConstants.EF_DeleteDogName
            };

            //Act
            repository.Delete(dog);
            _efUnitOfWork.Commit();

            //Assert
            DataTable table = DataUtil.GetTable(TestConstants.EF_DatabaseName, TestConstants.EF_TableName);

            foreach (DataRow row in table.Rows)
            {
                Assert.IsFalse((int)row["ID"] == TestConstants.EF_DeleteDogId);
            }
        }
        public void EFLinqRepository_Delete_Deletes_Item_From_DataBase()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository <Dog>(_efUnitOfWork, _cache.Object);
            var dog        = new Dog
            {
                ID   = TestConstants.EF_DeleteDogId,
                Age  = TestConstants.EF_DeleteDogAge,
                Name = TestConstants.EF_DeleteDogName
            };

            //Act
            repository.Delete(dog);
            _efUnitOfWork.Commit();

            //Assert
            int actualCount = DataUtil.GetRecordCount(TestConstants.EF_DatabaseName, TestConstants.EF_TableName);

            Assert.AreEqual(TestConstants.EF_RecordCount - 1, actualCount);
        }
        public void EFLinqRepository_Delete_Throws_With_Invalid_ID()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository<Dog>(_efUnitOfWork, _cache.Object);
            var dog = new Dog
                            {
                                ID = TestConstants.EF_InvalidDogId,
                                Age = TestConstants.EF_DeleteDogAge,
                                Name = TestConstants.EF_DeleteDogName
                            };

            //Act
            var success = false;
            try
            {
                repository.Delete(dog);
                _efUnitOfWork.Commit();
                success = true;
            }
            catch (Exception)
            {
                
            }

            //Assert
            Assert.IsFalse(success);
        }
        public void EFLinqRepository_Delete_Deletes_Item_From_DataBase_With_Correct_ID()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository<Dog>(_efUnitOfWork, _cache.Object);
            var dog = new Dog
            {
                ID = TestConstants.EF_DeleteDogId,
                Age = TestConstants.EF_DeleteDogAge,
                Name = TestConstants.EF_DeleteDogName
            };

            //Act
            repository.Delete(dog);
            _efUnitOfWork.Commit();

            //Assert
            DataTable table = DataUtil.GetTable(TestConstants.EF_DatabaseName, TestConstants.EF_TableName);
            foreach (DataRow row in table.Rows)
            {
                Assert.IsFalse((int)row["ID"] == TestConstants.EF_DeleteDogId);
            }
        }
        public void EFLinqRepository_Delete_Deletes_Item_From_DataBase()
        {
            //Arrange
            SetUpDatabase(TestConstants.EF_RecordCount);

            var repository = new EFLinqRepository<Dog>(_efUnitOfWork, _cache.Object);
            var dog = new Dog
                            {
                                ID = TestConstants.EF_DeleteDogId,
                                Age = TestConstants.EF_DeleteDogAge,
                                Name = TestConstants.EF_DeleteDogName
                            };

            //Act
            repository.Delete(dog);
            _efUnitOfWork.Commit();

            //Assert
            int actualCount = DataUtil.GetRecordCount(TestConstants.EF_DatabaseName, TestConstants.EF_TableName);
            Assert.AreEqual(TestConstants.EF_RecordCount - 1, actualCount);
        }