public async Task ListUsersByPageAsync_Success_GetLastPageNextPage() { //arrange var Users = new List <User>(); for (int i = 1; i < 100; i++) { Users.Add(new User { Username = string.Format("Agent{0}", i) }); } IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(Users.ToArray()); IListUserByPagePresenter presenter = new FakeListUsersByPagePresenter(_output); IListUsersByPageInteractor interactor = new ListUsersByPageInteractor(presenter, entityGateway); ListUsersByPageInputModel inputModel = new ListUsersByPageInputModel { PageNumber = 5, UsersPerPage = 25 }; //act var result = await interactor.ListUsersByPageAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.Success); Assert.Null(result.ModelValidationErrors); Assert.NotNull(result.OutputModel); Assert.NotNull(result.OutputModel.Page); Assert.True(result.OutputModel.Page.ItemsCount == 0, "Item Count"); Assert.True(result.OutputModel.Page.TotalItems == 99, "Total Items"); Assert.True(result.OutputModel.Page.TotalPages == 4, "Total Pages"); }
public async Task AddMembersToClubAsync_CommandResult_UsersToAddNotFoundByUsername() { //arrange string existingClubName = "C# Knights"; var clubsToPreload = new Club[] { new Club { Name = existingClubName } }; var members = new User[] { new User { Username = "******" } }; IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(clubsToPreload); IAddMembersToClubPresenter presenter = new FakeAddMembersToClubPresenter(_output); IAddMembersToClubInteractor interactor = new AddMembersToClubInteractor(presenter, entityGateway); AddMembersToClubInputModel inputModel = new AddMembersToClubInputModel { ClubModel = new Domain.Model.ClubModel { Name = existingClubName }, UserModelsToAdd = members.Select(member => member.GetModel()).ToList() }; //act var result = await interactor.AddMembersToClubAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.UsersInListNotFound); }
public async Task AddMembersToClubAsync_CommandResult_ClubNotFoundById() { //arrange var nonExistingClubId = Guid.NewGuid(); string existingMemberUsername = "******"; var members = new User[] { new User { Username = existingMemberUsername } }; IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(members); IAddMembersToClubPresenter presenter = new FakeAddMembersToClubPresenter(_output); IAddMembersToClubInteractor interactor = new AddMembersToClubInteractor(presenter, entityGateway); AddMembersToClubInputModel inputModel = new AddMembersToClubInputModel { ClubModel = new Domain.Model.ClubModel { Id = nonExistingClubId }, UserModelsToAdd = members.Select(member => member.GetModel()).ToList() }; //act var result = await interactor.AddMembersToClubAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.ClubNotFound); }
public void CreateInteractor_Success() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddUserPresenter presenter = new FakeAddUserPresenter(_output); //act var interactor = new AddUserInteractor(presenter, entityGateway); //assert Assert.NotNull(interactor); }
public void CreateInteractor_ThrowsException_NullPresenter() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddUserPresenter presenter = null; //act Action action = () => new AddUserInteractor(presenter, entityGateway); //assert Assert.Throws <ArgumentNullException>(action); }
public void CreateInteractor_Success() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IListUserByPagePresenter presenter = new FakeListUsersByPagePresenter(_output); //act IListUsersByPageInteractor interactor = new ListUsersByPageInteractor(presenter, entityGateway); //assert Assert.NotNull(interactor); }
public async Task AddUserAsync_ThrowsException_NullInput() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddUserPresenter presenter = new FakeAddUserPresenter(_output); IAddUserInteractor interactor = new AddUserInteractor(presenter, entityGateway); AddUserInputModel inputModel = null; //act async Task <CommandResult <Application.UseCase.Out.AddUserOutputModel> > function() => await interactor.AddUserAsync(inputModel); //assert await Assert.ThrowsAsync <ArgumentNullException>(function); }
public async Task ListUsersByPageAsync_ThrowsException_NullInput() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IListUserByPagePresenter presenter = new FakeListUsersByPagePresenter(_output); IListUsersByPageInteractor interactor = new ListUsersByPageInteractor(presenter, entityGateway); ListUsersByPageInputModel inputModel = null; //act async Task <CommandResult <ListUsersByPageOutputModel> > function() => await interactor.ListUsersByPageAsync(inputModel); //assert await Assert.ThrowsAsync <ArgumentNullException>(function); }
public async Task AddMembersToClubAsync_CommandResult_MissingClubFromInput1() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddMembersToClubPresenter presenter = new FakeAddMembersToClubPresenter(_output); IAddMembersToClubInteractor interactor = new AddMembersToClubInteractor(presenter, entityGateway); AddMembersToClubInputModel inputModel = new AddMembersToClubInputModel(); //act var result = await interactor.AddMembersToClubAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.MissingClub); }
public async Task AddUserAsync_FailedModelValidation_NullUsername() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddUserPresenter presenter = new FakeAddUserPresenter(_output); IAddUserInteractor interactor = new AddUserInteractor(presenter, entityGateway); AddUserInputModel inputModel = new AddUserInputModel(); //act var result = await interactor.AddUserAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.FailedModelValidation); Assert.True(result.ModelValidationErrors.ContainsKey(Domain.Common.ModelValidationStatusCode.RequiredInformationMissing)); }
public async Task ListUsersByPageAsync_FailedModelValidation_ZeroUsersPerPage() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IListUserByPagePresenter presenter = new FakeListUsersByPagePresenter(_output); IListUsersByPageInteractor interactor = new ListUsersByPageInteractor(presenter, entityGateway); ListUsersByPageInputModel inputModel = new ListUsersByPageInputModel { PageNumber = 1, UsersPerPage = 0 }; //act var result = await interactor.ListUsersByPageAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.FailedModelValidation); Assert.True(result.ModelValidationErrors.ContainsKey(Domain.Common.ModelValidationStatusCode.InvalidDataSupplied)); }
public async Task AddUserAsync_CommandResult_Success() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IAddUserPresenter presenter = new FakeAddUserPresenter(_output); IAddUserInteractor interactor = new AddUserInteractor(presenter, entityGateway); AddUserInputModel inputModel = new AddUserInputModel { Username = "******" }; //act var result = await interactor.AddUserAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.Success); Assert.Null(result.ModelValidationErrors); Assert.NotNull(result.OutputModel); Assert.True(result.OutputModel.Id != Guid.Empty); }
public async Task ListUsersByPageAsync_Success_EmptyPage() { //arrange IEntityGateway entityGateway = InMemoryEntityGatewayFactory.CreateEntityGateway(); IListUserByPagePresenter presenter = new FakeListUsersByPagePresenter(_output); IListUsersByPageInteractor interactor = new ListUsersByPageInteractor(presenter, entityGateway); ListUsersByPageInputModel inputModel = new ListUsersByPageInputModel { PageNumber = 1, UsersPerPage = 50 }; //act var result = await interactor.ListUsersByPageAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.Success); Assert.Null(result.ModelValidationErrors); Assert.NotNull(result.OutputModel); Assert.NotNull(result.OutputModel.Page); Assert.True(result.OutputModel.Page.ItemsCount == 0); }
public async Task AddUserAsyncExistingUserUsernameDifferentCase_CommandResult_DuplicateEntry() { //arrange string duplicatedUsername = "******"; var users = new User[] { new User { Username = duplicatedUsername } }; IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(users); IAddUserPresenter presenter = new FakeAddUserPresenter(_output); IAddUserInteractor interactor = new AddUserInteractor(presenter, entityGateway); AddUserInputModel inputModel = new AddUserInputModel { Username = duplicatedUsername.ToUpperInvariant() }; //act var result = await interactor.AddUserAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.DuplicateEntry); }
public async Task AddClubAsyncExistingClubNameDifferentCase_CommandResult_DuplicateEntry() { //arrange string duplicatedClubName = "C# Knights"; var clubsToPreload = new Club[] { new Club { Name = duplicatedClubName } }; IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(clubsToPreload); IAddClubPresenter presenter = new FakeAddClubPresenter(_output); IAddClubInteractor interactor = new AddClubInteractor(presenter, entityGateway); AddClubInputModel inputModel = new AddClubInputModel { Name = duplicatedClubName.ToLowerInvariant() }; //act var result = await interactor.AddClubAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.DuplicateEntry); }
public async Task AddMembersToClubAsync_CommandResult_MissingUsersToAddFromInput2() { //arrange string existingClubName = "C# Knights"; var clubsToPreload = new Club[] { new Club { Name = existingClubName } }; IEntityGateway entityGateway = await InMemoryEntityGatewayFactory.CreateEntityGatewayAsync(clubsToPreload); IAddMembersToClubPresenter presenter = new FakeAddMembersToClubPresenter(_output); IAddMembersToClubInteractor interactor = new AddMembersToClubInteractor(presenter, entityGateway); AddMembersToClubInputModel inputModel = new AddMembersToClubInputModel { ClubModel = new Domain.Model.ClubModel { Name = existingClubName }, UserModelsToAdd = null }; //act var result = await interactor.AddMembersToClubAsync(inputModel); //assert Assert.NotNull(result); Assert.True(result.Status == Application.Common.CommandResultStatusCode.MissingUsersToAdd); }