示例#1
0
 public RolController(
     CreateRoleCommandHandler createCommand,
     GetAllRolesQuery getAllQuery,
     GetRoleQuery getOneQuery,
     UpdateRoleCommandHandler updateCommand,
     DeleteRoleCommandHandler deleteCommand)
 {
     this.createCommand = createCommand;
     this.getAllQuery   = getAllQuery;
     this.getOneQuery   = getOneQuery;
     this.updateCommand = updateCommand;
     this.deleteCommand = deleteCommand;
 }
        public async Task Handle_GivenRoleDoesNotExist_ExpectFailedResult()
        {
            var roleQueries = new Mock <IRoleQueries>();

            roleQueries.Setup(x => x.CheckForRoleUsageById(It.IsAny <Guid>()))
            .ReturnsAsync(() => new StatusCheckModel(false));
            var roleRepository = new Mock <IRoleRepository>();
            var unitOfWork     = new Mock <IUnitOfWork>();

            unitOfWork.Setup(x => x.SaveEntitiesAsync(It.IsAny <CancellationToken>())).ReturnsAsync(() => true);
            roleRepository.Setup(x => x.UnitOfWork).Returns(unitOfWork.Object);
            roleRepository.Setup(x => x.Find(It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(() => Maybe <IRole> .Nothing);
            var handler = new DeleteRoleCommandHandler(roleRepository.Object, roleQueries.Object);
            var cmd     = new DeleteRoleCommand(TestVariables.RoleId);

            var result = await handler.Handle(cmd, CancellationToken.None);

            Assert.True(result.IsFailure);
            Assert.Equal(ErrorCodes.RoleNotFound, result.Error.Code);
        }
        public async Task Handle_GivenSavingSucceeds_ExpectSuccessfulResult()
        {
            var role        = new Mock <IRole>();
            var roleQueries = new Mock <IRoleQueries>();

            roleQueries.Setup(x => x.CheckForRoleUsageById(It.IsAny <Guid>()))
            .ReturnsAsync(() => new StatusCheckModel(false));
            var roleRepository = new Mock <IRoleRepository>();
            var unitOfWork     = new Mock <IUnitOfWork>();

            unitOfWork.Setup(x => x.SaveEntitiesAsync(It.IsAny <CancellationToken>())).ReturnsAsync(() => true);
            roleRepository.Setup(x => x.UnitOfWork).Returns(unitOfWork.Object);
            roleRepository.Setup(x => x.Find(It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(() => Maybe.From(role.Object));
            var handler = new DeleteRoleCommandHandler(roleRepository.Object, roleQueries.Object);
            var cmd     = new DeleteRoleCommand(TestVariables.RoleId);

            var result = await handler.Handle(cmd, CancellationToken.None);

            Assert.True(result.IsSuccess);
        }