Пример #1
0
        public async Task DeleteAsyncShouldWorkCorrectlyUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <UserMessage> >();

            var messages = new List <UserMessage>
            {
                new UserMessage {
                    Id = "TestId1", CreatedOn = new DateTime(2020, 12, 31, 12, 12, 12), Subject = "TestSubject1", Email = "TestEmail1", Message = "TestMessage1", IP = "TestIp1", IsRead = false
                },
                new UserMessage {
                    Id = "TestId2", CreatedOn = new DateTime(2020, 12, 31, 12, 12, 13), Subject = "TestSubject2", Email = "TestEmail2", Message = "TestMessage2", IP = "TestIp2"
                },
            };

            repository.Setup(r => r.AllAsNoTrackingWithDeleted()).Returns(messages.AsQueryable());
            repository.Setup(r => r.Delete(It.IsAny <UserMessage>())).Callback((UserMessage item) => messages.Remove(item));
            repository.Setup(r => r.SaveChangesAsync()).Verifiable();

            var service = new UserMessagesService(repository.Object);

            Assert.True(await service.DeleteAsync("TestId1"));
            Assert.Single(messages);

            repository.Verify(x => x.AllAsNoTrackingWithDeleted(), Times.Once);
            repository.Verify(x => x.Delete(It.IsAny <UserMessage>()), Times.Once);
            repository.Verify(x => x.SaveChangesAsync());
        }
Пример #2
0
        public async Task DeleteAsyncShouldReturnFalseWithInvalidMessageIdUsingMoq()
        {
            var repository = new Mock <IDeletableEntityRepository <UserMessage> >();

            var messages = new List <UserMessage>
            {
                new UserMessage {
                    Id = "TestId1", CreatedOn = new DateTime(2020, 12, 31, 12, 12, 12), Subject = "TestSubject1", Email = "TestEmail1", Message = "TestMessage1", IP = "TestIp1"
                },
                new UserMessage {
                    Id = "TestId2", CreatedOn = new DateTime(2020, 12, 31, 12, 12, 13), Subject = "TestSubject2", Email = "TestEmail2", Message = "TestMessage2", IP = "TestIp2"
                },
            };

            repository.Setup(r => r.AllAsNoTrackingWithDeleted()).Returns(messages.AsQueryable());

            var service = new UserMessagesService(repository.Object);

            Assert.False(await service.DeleteAsync("InvalidId"));

            repository.Verify(x => x.AllAsNoTrackingWithDeleted(), Times.Once);
        }