public void TestRepositoryBaseRemove_NoId()
        {
            using (var testDbInfo = SetupUtil.CreateFakeDb())
            {
                //Arrange
                Mock <ILog> log = new Mock <ILog>();

                Mock <FakeDto> mockDto = new Mock <FakeDto>();
                mockDto.SetupAllProperties();
                mockDto.Setup(d => d.Name).Returns("Test Data");

                var repo = new FakeRepositoryBase(testDbInfo.ConnectionString, log.Object);

                //Skip insert so it has no id

                //Act
                bool successful = repo.Remove(mockDto.Object);

                //Assert update failed
                Assert.False(successful);

                //Ensure failure was logged
                log.Verify(l => l.WriteLine(It.IsAny <string>(), LogLevel.Error));
            }
        }
        public void TestRepositoryBaseRemove_Null()
        {
            using (var testDbInfo = SetupUtil.CreateFakeDb())
            {
                //Arrange
                Mock <ILog> log  = new Mock <ILog>();
                var         repo = new FakeRepositoryBase(testDbInfo.ConnectionString, log.Object);


                //Act
                bool success = repo.Remove(null);

                //Assert
                Assert.False(success);

                //Ensure get removed dto failure was logged
                log.Verify(l => l.WriteLine(It.IsAny <string>(), LogLevel.Error));
            }
        }
        public void TestRepositoryBaseRemove()
        {
            using (var testDbInfo = SetupUtil.CreateFakeDb())
            {
                //Arrange
                Mock <ILog> log = new Mock <ILog>();

                List <Mock <FakeDto> > mockDtos = new List <Mock <FakeDto> >();
                var repo = new FakeRepositoryBase(testDbInfo.ConnectionString, log.Object);
                for (int i = 0; i < 10; i++)
                {
                    Mock <FakeDto> mockDto = new Mock <FakeDto>();
                    mockDto.SetupGet(d => d.Name).Returns("Test Data " + (i + 1));
                    mockDto.SetupProperty(d => d.Id);

                    mockDtos.Add(mockDto);

                    repo.InsertProxy(mockDto.Object);
                }


                //Act
                Mock <FakeDto> toRemove   = mockDtos[5];
                bool           success    = repo.Remove(toRemove.Object);
                FakeDto        removedDto = repo.GetById(toRemove.Object.Id.Value);

                //Assert

                //Ensure row was actually removed
                Assert.True(success);
                Assert.Null(removedDto);

                //Ensure get removed dto failure was logged
                log.Verify(l => l.WriteLine(It.IsAny <string>(), LogLevel.Error));
            }
        }