Пример #1
0
        public async Task UploadLogoAsync_ShouldBeOfTypeValidationResult()
        {
            // Arrange
            var memoryStream = new MemoryStream();

            TestMock.ClanRepository.Setup(repository => repository.UploadLogoAsync(It.IsAny <ClanId>(), It.IsAny <Stream>(), It.IsAny <string>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            // Act
            var result = await service.UploadLogoAsync(
                clan,
                ownerId,
                memoryStream,
                "testFile");

            // Assert
            result.Should().BeOfType <DomainValidationResult <object> >();
            TestMock.ClanRepository.Verify(repository => repository.UploadLogoAsync(It.IsAny <ClanId>(), It.IsAny <Stream>(), It.IsAny <string>()), Times.Once);
        }
Пример #2
0
 public PlayerService(ApiDbContext context, WowsPublicApiClient wgApi, WowsVortexApiClient vortex, ClanService clanService)
 {
     _context     = context;
     _wgApi       = wgApi;
     _vortex      = vortex;
     _clanService = clanService;
 }
Пример #3
0
        public async Task KickMemberFromClanAsync_ShouldBeOfTypeValidationResult()
        {
            // Arrange
            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            var memberUserId = new UserId();

            clan.AddMember(new Member(clan.Id, memberUserId));

            var member = clan.FindMember(memberUserId);

            TestMock.ClanRepository.Setup(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.KickMemberFromClanAsync(clan, ownerId, member.Id);

            // Assert
            result.Should().BeOfType <DomainValidationResult <Member> >();

            TestMock.ClanRepository.Verify(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()), Times.Once);
        }
Пример #4
0
        public async Task CreateClanAsync_ShouldBeOfTypeValidationResult()
        {
            // Arrange
            TestMock.ClanRepository.Setup(repository => repository.IsMemberAsync(It.IsAny <UserId>())).ReturnsAsync(false).Verifiable();

            TestMock.ClanRepository.Setup(repository => repository.ExistsAsync(It.IsAny <string>())).ReturnsAsync(false).Verifiable();

            TestMock.ClanRepository.Setup(repository => repository.Create(It.IsAny <Clan>())).Verifiable();

            TestMock.ClanRepository.Setup(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.CreateClanAsync(new UserId(), "test clan");

            // Assert
            result.Should().BeOfType <DomainValidationResult <Clan> >();
            TestMock.ClanRepository.Verify(repository => repository.IsMemberAsync(It.IsAny <UserId>()), Times.Once);
            TestMock.ClanRepository.Verify(repository => repository.ExistsAsync(It.IsAny <string>()), Times.Once);
            TestMock.ClanRepository.Verify(repository => repository.Create(It.IsAny <Clan>()), Times.Once);
            TestMock.ClanRepository.Verify(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()), Times.Once);
        }
Пример #5
0
 public async Task <IActionResult> GetDiplomacies()
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.RetrieveDiplomacies(accountSessionView.AccountID)));
     }
     return(Ok(ValidatedView <List <ClanDiplomacyView> > .Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #6
0
 public async Task <IActionResult> AssingRole(int id, int role)
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.AssignRole(accountSessionView.AccountID, id, (ClanRole)role)));
     }
     return(Ok(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #7
0
 public async Task <IActionResult> GetPending()
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.RetrievePendingFromMember(accountSessionView.AccountID)));
     }
     return(Ok(ValidatedView <List <AccountClanView> > .Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #8
0
 public async Task <IActionResult> Leave()
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.Leave(accountSessionView.AccountID)));
     }
     return(Ok(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #9
0
 public async Task <IActionResult> RejectJoinRequest(int id)
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.RejectJoinRequest(accountSessionView.AccountID, id)));
     }
     return(Ok(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #10
0
 public async Task <IActionResult> Post([FromBody] ClanCreateView clanCreateView)
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.CreateClan(accountSessionView.AccountID, clanCreateView)));
     }
     return(Ok(ValidatedView.Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #11
0
 public async Task <IActionResult> Get([FromQuery] string query, [FromQuery] int offset, [FromQuery] int count)
 {
     if (HttpContext.TryGetCurrentSession(out AccountSessionView accountSessionView))
     {
         return(Ok(await ClanService.RetrieveClans(accountSessionView.AccountID, (query ?? "").ToLower(), offset, count)));
     }
     return(Ok(ValidatedView <EnumerableResultView <ClanView> > .Invalid(ErrorCode.OPERATION_FAILED)));
 }
Пример #12
0
 protected void Confirm()
 {
     if (!ClanService.Edit(new ClanCreateView {
         Name = Name,
         Tag = Tag,
         Description = Description
     }, out string message, out HttpStatusCode code))
     {
         NotificationService.ShowError(message, "Failed to change clan informations!");
     }
Пример #13
0
 protected void Confirm()
 {
     if (!ClanService.CreateJoinRequest(
             new ClanJoinView {
         ClanID = Clan.ID, Description = Description
     },
             out string message, out HttpStatusCode code))
     {
         NotificationService.ShowError(message, "Failed to send join request!");
     }
Пример #14
0
        private static async Task <bool> CallListClanMembers()
        {
            var svc  = new ClanService();
            var task = svc.ListClanMembers("#YP9U0J");

            await Task.WhenAll(task);

            Console.WriteLine("Done...");

            return(true);
        }
Пример #15
0
        protected void Refresh()
        {
            if (!ClanService.RetrieveDiplomacies(out List <ClanDiplomacyView> diplomacies, out string message, out HttpStatusCode code))
            {
                NotificationService.ShowError(message, "Failed to load diplomacies!");
                if (code == HttpStatusCode.Unauthorized)
                {
                    ComponentService.Show(new Login());
                }
                else
                {
                    ComponentService.Show(new CriticalError());
                }
            }
            else
            {
                Diplomacies = diplomacies;
            }

            if (!ClanService.RetrievePendingDiplomacies(out List <ClanDiplomacyView> pending, out message, out code))
            {
                NotificationService.ShowError(message, "Failed to load pending diplomacies!");
                if (code == HttpStatusCode.Unauthorized)
                {
                    ComponentService.Show(new Login());
                }
                else
                {
                    ComponentService.Show(new CriticalError());
                }
            }
            else
            {
                Pending = pending;
            }

            if (!ClanService.RetrieveSelf(out AccountClanView account, out message, out code))
            {
                NotificationService.ShowError(message, "Failed to load self!");
                if (code == HttpStatusCode.Unauthorized)
                {
                    ComponentService.Show(new Login());
                }
                else
                {
                    ComponentService.Show(new CriticalError());
                }
            }
            else
            {
                Current = account;
            }
        }
Пример #16
0
        public async Task DeleteLogoAsync()
        {
            // Arrange
            TestMock.ClanRepository.Setup(repository => repository.DeleteLogoAsync(It.IsAny <ClanId>())).Returns(Task.CompletedTask).Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            await service.DeleteLogoAsync(new ClanId());

            // Assert;
            TestMock.ClanRepository.Verify(repository => repository.DeleteLogoAsync(It.IsAny <ClanId>()), Times.Once);
        }
Пример #17
0
        public async Task IsMemberAsync()
        {
            // Arrange
            var service = new ClanService(TestMock.ClanRepository.Object);

            TestMock.ClanRepository.Setup(repository => repository.IsMemberAsync(It.IsAny <UserId>())).ReturnsAsync(true).Verifiable();

            // Act
            await service.IsMemberAsync(new UserId());

            // Assert
            TestMock.ClanRepository.Verify(repository => repository.IsMemberAsync(It.IsAny <UserId>()), Times.Once);
        }
Пример #18
0
        private Task LeaveClanAsync()
        {
            if (clan == null || Player == null)
            {
                return(Task.CompletedTask);
            }

            return(Task.Run(() =>
            {
                ClanService.RemoveMember(clan.Id, Player.Id);
                InvokeAsync(() => NavigationManager.NavigateTo("/characters", true));
            }));
        }
Пример #19
0
        private static async Task <bool> CallRetreiveInformationAboutClansCurrentWar()
        {
            var svc  = new ClanService();
            var task = svc.RetrieveInformationAboutClansCurrentWar("#88GYPPRQ");

            await Task.WhenAll(task);

            var result = task.Result;

            Console.WriteLine($"{result.Clan.Name} V. {result.Opponent.Name}");
            Console.WriteLine("Done...");

            return(true);
        }
Пример #20
0
        private static async Task <bool> CallSearchClans()
        {
            var svc  = new ClanService();
            var task = svc.SearchClans(new ClanSearchCriteria
            {
                Name = "U.S.A"
            });

            await Task.WhenAll(task);

            Console.WriteLine("Done...");

            return(true);
        }
 protected void Refresh()
 {
     if (!ClanService.RetrieveClans(Query, (Page - 1) * 25, 25,
                                    out EnumerableResultView <ClanView> clans, out string message, out HttpStatusCode code))
     {
         NotificationService.ShowError(message, "Failed to load clans!");
         if (code == HttpStatusCode.Unauthorized)
         {
             ComponentService.Show(new Login());
         }
         else
         {
             ComponentService.Show(new CriticalError());
         }
     }
Пример #22
0
        public async Task FindClanAsync_ShouldBeOfTypeClan()
        {
            // Arrange
            TestMock.ClanRepository.Setup(repository => repository.FindClanAsync(It.IsAny <ClanId>())).ReturnsAsync(new Clan("test", new UserId())).Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.FindClanAsync(new ClanId());

            // Assert
            result.Should().BeOfType <Clan>();

            TestMock.ClanRepository.Verify(repository => repository.FindClanAsync(It.IsAny <ClanId>()), Times.Once);
        }
Пример #23
0
        public async Task LeaveClanAsync_WhenNotMember_ShouldBeOfTypeValidationResultWithErrors()
        {
            // Arrange
            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.LeaveClanAsync(clan, new UserId());

            // Assert
            result.Should().BeOfType <DomainValidationResult <Clan> >();
            result.Errors.Should().NotBeEmpty();
        }
Пример #24
0
        private static async Task <bool> CallGetClanInformation()
        {
            var svc  = new ClanService();
            var task = svc.GetClanInformation("#YP9U0J");

            await Task.WhenAll(task);

            var result = task.Result;

            Console.WriteLine(result.Name);
            Console.WriteLine(result.Description);

            Console.WriteLine("Done...");

            return(true);
        }
Пример #25
0
        public async Task CreateClanAsync_WhenMember_ShouldBeOfTypeValidationResultWithErrors()
        {
            // Arrange
            TestMock.ClanRepository.Setup(repository => repository.IsMemberAsync(It.IsAny <UserId>())).ReturnsAsync(true).Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.CreateClanAsync(new UserId(), "test clan");

            // Assert
            result.Should().BeOfType <DomainValidationResult <Clan> >();

            result.Errors.Should().NotBeEmpty();

            TestMock.ClanRepository.Verify(repository => repository.IsMemberAsync(It.IsAny <UserId>()), Times.Once);
        }
Пример #26
0
        public void AddMemberToClanAsync_WhenClanDoesNotExists_ShouldThrowInvalidOperationException()
        {
            // Arrange
            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            TestMock.ClanRepository.Setup(repository => repository.FindClanAsync(It.IsAny <ClanId>())).Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var action = new Func <Task>(async() => await service.AddMemberToClanAsync(clan.Id, new Candidature(new UserId(), clan.Id)));

            // Assert;
            action.Should().Throw <InvalidOperationException>();

            TestMock.ClanRepository.Verify(repository => repository.FindClanAsync(It.IsAny <ClanId>()), Times.Once);
        }
Пример #27
0
        public async Task DownloadLogoAsync_ShouldBeOfTypeStream()
        {
            // Arrange
            var memoryStream = new MemoryStream();

            TestMock.ClanRepository.Setup(repository => repository.DownloadLogoAsync(It.IsAny <ClanId>())).ReturnsAsync(memoryStream).Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            var clan = new Clan("test", new UserId());

            // Act
            var result = await service.DownloadLogoAsync(clan);

            // Assert
            result.Should().BeOfType <MemoryStream>();

            TestMock.ClanRepository.Verify(repository => repository.DownloadLogoAsync(It.IsAny <ClanId>()), Times.Once);
        }
Пример #28
0
        public async Task FindMemberAsync_ShouldBeOfTypeMember()
        {
            // Arrange
            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            TestMock.ClanRepository.Setup(repository => repository.FindMemberAsync(It.IsAny <ClanId>(), It.IsAny <MemberId>()))
            .ReturnsAsync(new Member(new ClanId(), new UserId()))
            .Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            var result = await service.FindMemberAsync(clan, new MemberId());

            // Assert
            result.Should().BeOfType <Member>();

            TestMock.ClanRepository.Verify(repository => repository.FindMemberAsync(It.IsAny <ClanId>(), It.IsAny <MemberId>()), Times.Once);
        }
Пример #29
0
        public async Task AddMemberToClanAsync()
        {
            // Arrange
            var ownerId = new UserId();
            var clan    = new Clan("test", ownerId);

            TestMock.ClanRepository.Setup(repository => repository.FindClanAsync(It.IsAny <ClanId>())).ReturnsAsync(clan).Verifiable();

            TestMock.ClanRepository.Setup(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var service = new ClanService(TestMock.ClanRepository.Object);

            // Act
            await service.AddMemberToClanAsync(clan.Id, new Candidature(new UserId(), clan.Id));

            // Assert;
            TestMock.ClanRepository.Verify(repository => repository.FindClanAsync(It.IsAny <ClanId>()), Times.Once);
            TestMock.ClanRepository.Verify(repository => repository.UnitOfWork.CommitAsync(It.IsAny <bool>(), It.IsAny <CancellationToken>()), Times.Once);
        }
        protected void Create()
        {
            Loading = true;
            StateHasChanged();

            if (!ClanService.CreateClan(new ClanCreateView {
                Tag = Tag,
                Name = Name,
                Description = Description
            }, out string message, out HttpStatusCode code))
            {
                NotificationService.ShowError(message, "Failed to create clan!");
                if (code == HttpStatusCode.Unauthorized)
                {
                    ComponentService.Show(new Login());
                }
                else
                {
                    Loading = false;
                }
            }