/// <summary>
 /// Set generic audit helper.
 /// </summary>
 private void SetGenericAuditHelper()
 {
     genericAudit = new DataModels.Audit()
     {
         Action    = 0,
         CreatedAt = DateTime.UtcNow,
         Id        = 0,
         Message   = "Test Message",
         Severity  = 1,
         Ukprn     = 0,
         User      = "******"
     };
 }
        public void GetByPredicateTest()
        {
            //Set up
            var expectation = new DataModels.Audit()
            {
                Action    = 0,
                CreatedAt = DateTime.UtcNow,
                Id        = 1,
                Message   = "expected",
                Severity  = 1,
                Ukprn     = 0,
                User      = "******"
            };
            var unexpectation = new DataModels.Audit()
            {
                Action    = 0,
                CreatedAt = DateTime.UtcNow,
                Id        = 2,
                Message   = "unexpected",
                Severity  = 1,
                Ukprn     = 0,
                User      = "******"
            };
            var dummyCollection = new List <DataModels.Audit> {
                expectation, unexpectation
            };

            var mockDbSet     = dummyCollection.GetMockDbSet();
            var mockDbContext = Mock.Of <DbContext>(MockBehavior.Strict);

            Mock.Get(mockDbContext)
            .Setup(db => db.Set <DataModels.Audit>())
            .Returns(mockDbSet.Object);

            //Act
            var repo   = new Repository <DataModels.Audit>(mockDbContext);
            var actual = repo.GetByPredicate(dummy => dummy.Id == 1);

            //Verify
            actual.Should().Be(expectation);
            Mock.Get(mockDbContext).Verify();
        }
        public void DeleteTest()
        {
            //Set up
            var dummyModel    = new DataModels.Audit();
            var mockDbSet     = Mock.Of <DbSet <DataModels.Audit> >();
            var mockDbContext = Mock.Of <DbContext>(MockBehavior.Strict);

            Mock.Get(mockDbContext)
            .Setup(db => db.Set <DataModels.Audit>())
            .Returns(mockDbSet);

            //Act
            var repo = new Repository <DataModels.Audit>(mockDbContext);

            repo.Delete(dummyModel);

            //Verify
            Mock.Get(mockDbContext).Verify();
            Mock.Get(mockDbSet)
            .Verify(e => e.Remove(dummyModel), Times.Once);
        }