Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }