Ejemplo n.º 1
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_ThrowsException_NullGateway()
        {
            //arrange
            IEntityGateway    entityGateway = null;
            IAddUserPresenter presenter     = new FakeAddUserPresenter(_output);

            //act
            Action action = () => new AddUserInteractor(presenter, entityGateway);

            //assert
            Assert.Throws <ArgumentNullException>(action);
        }
        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();
            IAddUserPresenter presenter     = new FakeAddUserPresenter(_output);

            //act
            var interactor = new AddUserInteractor(presenter, entityGateway);

            //assert
            Assert.NotNull(interactor);
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
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);
        }
        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 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.º 10
0
        /// <summary>
        /// Initializes a new instance of the
        /// <see cref="SilverNeedle.Mechanics.CharacterGenerator.CharacterGenerator"/> class.
        /// </summary>
        /// <param name="abilities">Ability score generator to use.</param>
        /// <param name="langs">Language selector to use.</param>
        /// <param name="races">Race selector to use.</param>
        /// <param name="names">Name selector to use.</param>
        public CharacterGenerator(
            IAbilityScoreGenerator abilities,
            LanguageSelector langs,
            RaceSelector races,
            INameCharacter names)
        {
            this.abilityGenerator = abilities;
            this.languageSelector = langs;
            this.raceSelector     = races;
            this.nameGenerator    = names;

            this.armorGateway    = new ArmorYamlGateway();
            this.weaponGateway   = new WeaponYamlGateway();
            this.skillGateway    = new SkillYamlGateway();
            this.classGateway    = new ClassYamlGateway();
            this.maturityGateway = new RaceMaturityYamlGateway();
        }
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);
        }
Ejemplo n.º 17
0
 /// <summary>
 /// Initializes a new instance of the
 /// <see cref="SilverNeedle.Mechanics.CharacterGenerator.LanguageSelector"/> class.
 /// </summary>
 /// <param name="languages">Languages gateway to fetch languages from</param>
 public LanguageSelector(IEntityGateway <Language> languages)
 {
     this.languages = languages;
 }
 //Constructors
 public ListUsersByPageInteractor(IListUserByPagePresenter presenter, IEntityGateway entityGateway)
     : base(entityGateway)
 {
     _presenter = presenter ?? throw new ArgumentNullException(nameof(presenter));
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SilverNeedle.Mechanics.CharacterGenerator.RaceSelector"/> class.
 /// </summary>
 /// <param name="races">Races gateway to load from.</param>
 /// <param name="traitGateway">Trait gateway.</param>
 public RaceSelector(IEntityGateway <Race> races, IEntityGateway <Trait> traitGateway)
 {
     this.traitGateway = traitGateway;
     this.racesGateway = races;
 }
 // constructor
 public AddMembersToClubInteractor(IAddMembersToClubPresenter presenter, IEntityGateway entityGateway)
     : base(entityGateway)
 {
     _presenter = presenter ?? throw new ArgumentNullException(nameof(presenter));
 }
 protected BaseEntityGatewayInteractor(IEntityGateway entityGateway)
 {
     _entityGateway = entityGateway ?? throw new ArgumentNullException(nameof(entityGateway));
 }
Ejemplo n.º 22
0
 void IEntityGatewayClient.Register(IEntityGateway arg, int key)
 {
     Debug.Assert(arg != null);
     _provider = arg;
     _key      = key;
 }