示例#1
0
        public async Task Delete_Throw_Exception_If_Request_Null(
            Delete.Request request, CancellationToken cancellationToken,
            int userId, int adId)
        {
            ConfigureMoqEnvironment(userId.ToString(), adId);
            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(async() => await advertisementService.Delete(request, cancellationToken));

            _identityServiceMock.Verify();
        }
示例#2
0
        public async Task Throws_Delete_Exception_If_Sender_Is_Not_Meal_Owner()
        {
            _fixture.StartScope();

            // Arrange-TestAccount(RegularUser)
            var testAccount = (TestAccountProvider)_fixture.GetService <ICurrentAccountProvider>();

            testAccount.Role = Role.RegularUser;

            {   // Arrange-Account
                var request = new Api.Features.Account.Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                testAccount.Id =
                    (await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Email == request.Email))).Id;
            }

            // This is created by another Account
            var createRequest = new Create.Request
            {
                Date     = DateTime.UtcNow.Date,
                Time     = "11:11",
                Text     = "string",
                Calories = 3
            };
            var createResponse = await _fixture.SendAsync(createRequest);

            {   // Arrange-Account(Change the Account)
                var request = new Api.Features.Account.Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                testAccount.Id =
                    (await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Email == request.Email))).Id;
            }

            {
                // Arrange
                var request = new Delete.Request
                {
                    Id = createResponse.Id
                };

                // Act & Assert
                await Assert.ThrowsAsync <RestException>(() => _fixture.SendAsync(request));
            }
        }
示例#3
0
        public async Task Should_Delete_Meal()
        {
            _fixture.StartScope();

            // Arrange-TestAccount
            var testAccount = (TestAccountProvider)_fixture.GetService <ICurrentAccountProvider>();

            {   // Arrange-Account
                var request = new Api.Features.Account.Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                testAccount.Id =
                    (await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Email == request.Email))).Id;
            }

            Guid id;
            {
                // Arrange-Meal-To-Delete
                var request = new Create.Request
                {
                    Date     = DateTime.UtcNow.Date,
                    Time     = "11:11",
                    Text     = "string",
                    Calories = 3
                };
                var response = await _fixture.SendAsync(request);

                id = response.Id;
            }

            {
                // Arrange
                var request = new Delete.Request
                {
                    Id = id
                };

                // Act
                await _fixture.SendAsync(request);

                var count = await _fixture.CountAsync <Meal>();

                // Assert
                Assert.Equal(0, count);
            }
        }
        public async Task <IActionResult> Delete(Delete.Request request)
        {
            var account = await session
                          .Query <Account>()
                          .Where(p => p.Deleted != true)
                          .Where(p => p.Id == request.Id)
                          .FirstOrDefaultAsync()
                          .ConfigureAwait(false);

            if (account == null)
            {
                return(NotFound());
            }

            session.Events.Append(request.Id, new AccountDeleted(request.CorrelationId));
            await session.SaveChangesAsync(new CancellationToken());

            return(NoContent());
        }
示例#5
0
        public async Task Throws_Delete_Exception_For_Invalid_Identifier()
        {
            _fixture.StartScope();

            // Arrange-TestAccount
            var testAccount = (TestAccountProvider)_fixture.GetService <ICurrentAccountProvider>();

            {   // Arrange-Account
                var request = new Api.Features.Account.Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                testAccount.Id =
                    (await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Email == request.Email))).Id;
            }

            {
                // Arrange-Meal-To-Delete
                var request = new Create.Request
                {
                    Date     = DateTime.UtcNow.Date,
                    Time     = "11:11",
                    Text     = "string",
                    Calories = 3
                };
                await _fixture.SendAsync(request);
            }

            {
                // Arrange
                var request = new Delete.Request
                {
                    Id = Guid.NewGuid()
                };

                // Act & Assert
                await Assert.ThrowsAsync <RestException>(() => _fixture.SendAsync(request));
            }
        }
示例#6
0
        public async Task Delete(Delete.Request request, CancellationToken cancellationToken)
        {
            var ad = await _repository.FindByIdWithUserInclude(request.Id, cancellationToken);

            if (ad == null)
            {
                throw new AdNotFoundException(request.Id);
            }

            var user = await _userService.GetCurrent(cancellationToken);

            if (ad.Owner.Id != user.Id)
            {
                throw new NoRightsException("Нет прав для выполнения операции.");
            }

            ad.Status    = Domain.Ad.Statuses.Closed;
            ad.UpdatedAt = DateTime.UtcNow;
            await _repository.Save(ad, cancellationToken);
        }
        public async Task <IActionResult> Delete([FromBody] Delete.Request req)
        {
            var rec = await Common1DB.OpsNotices
                      .Where(r => r.Id == req.id)
                      .FirstOrDefaultAsync();

            if (rec == null)
            {
                return(BadRequest());
            }


            Common1DB.OpsNotices.Remove(rec);
            await Common1DB.SaveChangesAsync();

            return(Ok(new Delete.Response
            {
                deletedId = req.id,
            }));
        }
示例#8
0
        public async Task Should_Delete_Account_With_Valid_Email()
        {
            _fixture.StartScope();

            string email;

            {   // Arrange-Account-To-Delete
                var request = new Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                email = request.Email;
            }

            {
                // Arrange
                var request = new Delete.Request
                {
                    Email = email
                };

                // Act
                await _fixture.SendAsync(request);

                var account = await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Email == email));

                var count = await _fixture.ExecuteDbContextAsync(db => db.Accounts.CountAsync());

                // Assert
                Assert.Null(account);

                // There should be only Admin account
                Assert.Equal(1, count);
            }
        }
示例#9
0
        public async Task Throws_Delete_Exception_For_Invalid_Email()
        {
            _fixture.StartScope();

            {   // Arrange-Account-To-Delete
                var request = new Create.Request
                {
                    Email    = _fixture.GetEmail(),
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);
            }

            {
                // Arrange
                var request = new Delete.Request
                {
                    Email = _fixture.GetEmail()
                };

                // Act & Assert
                await Assert.ThrowsAsync <RestException>(() => _fixture.SendAsync(request));
            }
        }