示例#1
0
        public async Task Handle_GivenInvalidRequest_ShouldThrowEntityAlreadyExistsException()
        {
            // Arrange
            var command = new ModifyTeamCommand
            {
                Id          = 1,
                Name        = "FooTeam2",
                Description = "ModifiedDescription",
                HomepageUrl = "ModifiedHomepage",
                TeamImage   = new Mock <IFormFile>().Object
            };

            var cloudinaryHelperMock = new Mock <ICloudinaryHelper>();

            cloudinaryHelperMock
            .Setup(x => x.UploadImage(It.IsAny <IFormFile>(), It.IsAny <string>(), It.IsAny <Transformation>()))
            .ReturnsAsync("http://test.bg/1.jpg");

            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.UserId).Returns("Foo1");

            var sut = new ModifyTeamCommandHandler(this.deletableEntityRepository, cloudinaryHelperMock.Object, userAccessorMock.Object);

            // Act & Assert
            await Should.ThrowAsync <EntityAlreadyExistsException>(sut.Handle(command, It.IsAny <CancellationToken>()));
        }
示例#2
0
        public async Task Handle_GivenNullRequest_ShouldThrowArgumentNullException()
        {
            // Arrange
            var sut = new ModifyTeamCommandHandler(It.IsAny <IDeletableEntityRepository <Team> >(), It.IsAny <ICloudinaryHelper>(), It.IsAny <IUserAccessor>());

            // Act & Assert
            await Should.ThrowAsync <ArgumentNullException>(sut.Handle(null, It.IsAny <CancellationToken>()));
        }
示例#3
0
        public async Task Handle_GivenInvalidRequest_ShouldThrowNotFoundException()
        {
            // Arrange
            var command = new ModifyTeamCommand
            {
                Id = 311,
            };

            var sut = new ModifyTeamCommandHandler(this.deletableEntityRepository, It.IsAny <ICloudinaryHelper>(), It.IsAny <IUserAccessor>());

            // Act & Assert
            await Should.ThrowAsync <NotFoundException>(sut.Handle(command, It.IsAny <CancellationToken>()));
        }
示例#4
0
        public async Task Handle_GivenInvalidRequest_ShouldThrowForbiddenException()
        {
            // Arrange
            var command = new ModifyTeamCommand
            {
                Id = 1
            };

            var cloudinaryHelperMock = new Mock <ICloudinaryHelper>();

            cloudinaryHelperMock
            .Setup(x => x.UploadImage(It.IsAny <IFormFile>(), It.IsAny <string>(), It.IsAny <Transformation>()))
            .ReturnsAsync("http://test.bg/1.jpg");

            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.UserId).Returns("InvalidId");

            var sut = new ModifyTeamCommandHandler(this.deletableEntityRepository, cloudinaryHelperMock.Object, userAccessorMock.Object);

            // Act & Assert
            await Should.ThrowAsync <ForbiddenException>(sut.Handle(command, It.IsAny <CancellationToken>()));
        }
示例#5
0
        public async Task Handle_GivenValidRequest_ShouldModifyTeam()
        {
            // Arrange
            var command = new ModifyTeamCommand
            {
                Id          = 1,
                Name        = "ModifiedName",
                Description = "ModifiedDescription",
                HomepageUrl = "ModifiedHomepage",
                TeamImage   = new Mock <IFormFile>().Object
            };

            var cloudinaryHelperMock = new Mock <ICloudinaryHelper>();

            cloudinaryHelperMock
            .Setup(x => x.UploadImage(It.IsAny <IFormFile>(), It.IsAny <string>(), It.IsAny <Transformation>()))
            .ReturnsAsync("http://test.bg/1.jpg");

            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.UserId).Returns("Foo1");

            var sut = new ModifyTeamCommandHandler(this.deletableEntityRepository, cloudinaryHelperMock.Object, userAccessorMock.Object);

            // Act
            var id = await sut.Handle(command, It.IsAny <CancellationToken>());

            //Assert
            var modifiedTeam = this.dbContext.Teams.SingleOrDefault(x => x.Id == id);

            modifiedTeam.ShouldNotBeNull();
            modifiedTeam.Name.ShouldBe("ModifiedName");
            modifiedTeam.Description.ShouldBe("ModifiedDescription");
            modifiedTeam.HomepageUrl.ShouldBe("ModifiedHomepage");
            modifiedTeam.ImageUrl.ShouldBe("http://test.bg/1.jpg");
        }