Ejemplo n.º 1
0
        public async Task DeleteGuidInfo_NotFound()
        {
            System.Guid guid = System.Guid.NewGuid();

            // do not find entity in database
            var mockRepo = new Mock <IRepository <GuidInfoEntity> >();

            mockRepo.Setup(r => r.GetAsync(It.IsAny <Expression <Func <GuidInfoEntity, bool> > >()))
            .ReturnsAsync(new List <GuidInfoEntity>())
            .Verifiable();

            var mockContext = new Mock <IGuidRepositoryContext>();

            mockContext.Setup(r => r.GuidInfos)
            .Returns(mockRepo.Object);

            var mockCache = new Mock <IEntityCache <GuidInfoEntity> >();

            var controller = new GuidInfosController(mockContext.Object, mockCache.Object, _mockClock.Object);
            var info       = await controller.DeleteGuidInfoAsync(guid);

            var result = Assert.IsType <NotFoundObjectResult>(info);
            var value  = Assert.IsType <GuidApiError>(result.Value);

            Assert.Equal((int)value.Code, (int)GuidErrorCode.GuidNotFound);

            mockRepo.Verify();
        }
Ejemplo n.º 2
0
        public async Task DeleteGuidInfo_Found()
        {
            var dbEntity = new GuidInfoEntity()
            {
                Guid   = System.Guid.NewGuid(),
                User   = "******",
                Expire = new DateTime(2020, 2, 2, 2, 2, 2, DateTimeKind.Utc)
            };

            // find entity in database
            var mockRepo = new Mock <IRepository <GuidInfoEntity> >();

            mockRepo.Setup(r => r.GetAsync(It.IsAny <Expression <Func <GuidInfoEntity, bool> > >()))
            .ReturnsAsync(new List <GuidInfoEntity>()
            {
                dbEntity
            })
            .Verifiable();

            // remove it from database
            mockRepo.Setup(r => r.Delete(It.IsAny <GuidInfoEntity>()))
            .Verifiable();

            var mockContext = new Mock <IGuidRepositoryContext>();

            mockContext.Setup(r => r.GuidInfos)
            .Returns(mockRepo.Object);

            // and invalidate cache
            var mockCache = new Mock <IEntityCache <GuidInfoEntity> >();

            mockCache.Setup(r => r.InvalidateEntityAsync(It.IsAny <string>(), dbEntity.Guid.ToString()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var controller = new GuidInfosController(mockContext.Object, mockCache.Object, _mockClock.Object);
            var info       = await controller.DeleteGuidInfoAsync(dbEntity.Guid);

            var result = Assert.IsType <OkResult>(info);

            Assert.Equal(result.StatusCode, (int)HttpStatusCode.OK);

            mockRepo.Verify();
            mockCache.Verify();
        }