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); }
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 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); }
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)); }
/// <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(); }
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); }
/// <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)); }
/// <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)); }
void IEntityGatewayClient.Register(IEntityGateway arg, int key) { Debug.Assert(arg != null); _provider = arg; _key = key; }