示例#1
0
        public async Task Should_Get_NotProvided_Calories_From_Service_For_Valid_MealName()
        {
            // Arrange
            _fixture.StartScope();

            var request = new Create.Request
            {
                Date = DateTime.UtcNow,
                Time = "11:11",
                Text = Guid.NewGuid().ToString()
            };

            const decimal calories = 55.55M;

            var service = (TestCaloriesService)_fixture.GetService <ICaloriesService>();

            service.Calories.Add(request.Text, calories);

            var testAccount = (TestAccountProvider)_fixture.GetService <ICurrentAccountProvider>();

            testAccount.Id = Guid.NewGuid();

            // Act
            var response = await _fixture.SendAsync(request);

            var meal = await _fixture.FindAsync <Meal>(response.Id);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(request.Date.ToShortDateString(), meal.Date.ToShortDateString());
            Assert.Equal(request.Time, meal.Time.ToShortTimeString());
            Assert.Equal(request.Text, meal.Text);
            Assert.Equal(calories, meal.Calories);
            Assert.Equal(testAccount.Id, meal.AccountId);
        }
示例#2
0
        public async Task Should_Update_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-Update
                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 Update.Request
                {
                    Id       = id,
                    Date     = DateTime.UtcNow.Date.AddDays(1),
                    Time     = "11:15",
                    Text     = "Another String",
                    Calories = 22
                };

                // Act
                await _fixture.SendAsync(request);

                var meal =
                    await _fixture.ExecuteDbContextAsync(db => db.Meals.SingleOrDefaultAsync(x => x.Id == id));

                // Assert
                Assert.Equal(request.Date.ToShortDateString(), meal.Date.ToShortDateString());
                Assert.Equal(request.Time, meal.Time.ToShortTimeString());
                Assert.Equal(request.Text, meal.Text);
                Assert.Equal(request.Calories, meal.Calories);
                Assert.False(meal.CalorieStatus);
                Assert.Equal(testAccount.Id, meal.AccountId);
            }
        }
        public async Task <IActionResult> Create([FromBody] Create.Request req)
        {
            var requester = new AuthenticationServer.ProtocolModels.Auth.CreateAccount();

            requester.request.account  = req.account;
            requester.request.password = req.password;
            requester.request.nickname = req.nickname;

            var response = await requester.PostAsync(AuthenticationServerInfo.Uri);

            if (response == null)
            {
                return(BuildErrorResponse("SeverInternalError"));
            }

            if (response.resultCode == AuthenticationServer.ProtocolModels.Auth.CreateAccount.Response.ResultCode.AlreadyExists)
            {
                return(BuildErrorResponse($"<{req.account}> is  already exists."));
            }

            return(Ok(new Create.Response
            {
                account = response.account,
                nickname = response.nickname,
                permission = response.permission,
            }));
        }
示例#4
0
        public async Task Throws_Create_Exception_For_Existing_Email()
        {
            // Arrange
            _fixture.StartScope();
            var request = new Create.Request
            {
                Email    = "*****@*****.**",
                Password = Guid.NewGuid().ToString()
            };

            {   // Create Account
                var response = await _fixture.SendAsync(request);

                // Inner-Assert
                Assert.NotNull(response);
                Assert.NotEmpty(response.Token);
            }

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

                Assert.Equal(HttpStatusCode.Conflict, exception.HttpStatus);
            }
        }
示例#5
0
        public async Task Should_Get_Token()
        {
            // Arrange
            _fixture.StartScope();

            var createRequest = new Create.Request
            {
                Email    = "*****@*****.**",
                Password = Guid.NewGuid().ToString()
            };

            var request = new Token.Request
            {
                Email    = createRequest.Email,
                Password = createRequest.Password
            };

            // Act
            await _fixture.SendAsync(createRequest);

            var response = await _fixture.SendAsync(request);

            // Assert
            Assert.NotNull(response);
            Assert.NotEmpty(response.Token);
        }
示例#6
0
        public async Task Should_Set_Null_For_Invalid_MealName()
        {
            // Arrange
            _fixture.StartScope();

            var request = new Create.Request
            {
                Date = DateTime.UtcNow,
                Time = "11:11",
                Text = Guid.NewGuid().ToString()
            };

            var testAccount = (TestAccountProvider)_fixture.GetService <ICurrentAccountProvider>();

            testAccount.Id = Guid.NewGuid();

            // Act
            var response = await _fixture.SendAsync(request);

            var meal = await _fixture.FindAsync <Meal>(response.Id);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(request.Date.ToShortDateString(), meal.Date.ToShortDateString());
            Assert.Equal(request.Time, meal.Time.ToShortTimeString());
            Assert.Equal(request.Text, meal.Text);
            Assert.Null(meal.Calories);
            Assert.Equal(testAccount.Id, meal.AccountId);
        }
示例#7
0
        public async Task <Create.Response> Create(Create.Request request, CancellationToken cancellationToken)
        {
            var userId = await _identityService.GetCurrentUserId(cancellationToken);

            if (string.IsNullOrEmpty(userId))
            {
                throw new NoUserForAdCreationException($"Попытка создания объявления [{request.Title}] без пользователя.");
            }

            var ad = new Domain.Advertisement
            {
                Title       = request.Title,
                Description = request.Description,
                Price       = request.Price,
                Cover       = request.Cover,
                OwnerId     = userId,
                Status      = Domain.Advertisement.Statuses.Created,
                Location    = request.Location,
                GeoLat      = request.GeoLat,
                GeoLon      = request.GeoLon,
                CreatedDate = DateTime.UtcNow,
                CategoryId  = request.CategoryId
            };

            await _repository.Save(ad, cancellationToken);

            return(new Create.Response
            {
                Id = ad.Id
            });
        }
示例#8
0
        public async Task <IActionResult> Post(Create.Request request)
        {
            var result =
                await this.mediator.Send(request);

            return(Ok(result));
        }
示例#9
0
        public async Task Should_Get_Account_Index_With_Filter()
        {
            _fixture.StartScope();

            {   // Arrange-TestAccountList
                var request = new Create.Request
                {
                    Email    = "*****@*****.**",
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                request.Email = "*****@*****.**";
                await _fixture.SendAsync(request);

                request.Email = "*****@*****.**";
                await _fixture.SendAsync(request);

                // Act
                var count =
                    await _fixture.CountAsync <Account>();

                // Assert
                // There is also an AdminAccount
                Assert.Equal(3 + 1, count);
            }

            {   // Single Result Test
                // Arrange
                var request = new Index.Request
                {
                    Filter = "Email eq '*****@*****.**'"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Single(response.Items);
                Assert.Equal("*****@*****.**", response.Items.First().Email);
            }

            {   // Multiple Result Test
                // Arrange
                var request = new Index.Request
                {
                    Filter = "Role eq 'RegularUser'"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(3, response.Items.Count);
                Assert.Equal("*****@*****.**", response.Items.First().Email);
            }
        }
        public async Task ShouldReturnCreatedUsername()
        {
            var request       = new Create.Request("isanjay", "Sanjay_11!", "Sanjay", "Idpuganti", "*****@*****.**");
            var handledResult = await _handler.Handle(request,
                                                      CancellationToken.None);

            Assert.Equal(handledResult.Username, request.Username);
        }
示例#11
0
        public async Task Throws_Update_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 Update.Request
                {
                    Id       = createResponse.Id,
                    Date     = DateTime.UtcNow.Date.AddDays(1),
                    Time     = "11:15",
                    Text     = "Another String",
                    Calories = 22
                };

                // Act & Assert
                await Assert.ThrowsAsync <RestException>(() => _fixture.SendAsync(request));
            }
        }
示例#12
0
        public void GivenIHaveCreatePlayerRequest(Table table)
        {
            _request = GetPlayer(table);

            var playerId = new PlayerId("player1");

            _testFixture.MockNextRandomId(playerId.ToString());

            _expectedPlayer = new Player(_testFixture.CurrentTenant, new Version("<some-version>"), playerId, _request.FirstName, _request.LastName);
        }
示例#13
0
        public async Task Should_Set_True_To_CalorieStatus_If_CurrentCalories_IsLessThan_TargetCalories_With_Multiple_Meals()
        {
            _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-AccountSetting
                var request = new Api.Features.Account.UpdateSetting.Request
                {
                    TargetCalories = 3
                };
                await _fixture.SendAsync(request);
            }

            {   // Arrange
                var request = new Create.Request
                {
                    Date     = DateTime.UtcNow.Date,
                    Time     = "11:11",
                    Text     = Guid.NewGuid().ToString(),
                    Calories = 1
                };

                // Act
                await _fixture.SendAsync(request);

                var response = await _fixture.SendAsync(request);

                var meal = await _fixture.FindAsync <Meal>(response.Id);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(request.Date.ToShortDateString(), meal.Date.ToShortDateString());
                Assert.Equal(request.Time, meal.Time.ToShortTimeString());
                Assert.Equal(request.Text, meal.Text);
                Assert.Equal(request.Calories, meal.Calories);
                Assert.True(meal.CalorieStatus);
                Assert.Equal(testAccount.Id, meal.AccountId);
            }
        }
示例#14
0
        public async Task Create_Response_Success(
            Create.Request request, CancellationToken cancellationToken,
            int userId)
        {
            ConfigureMoqEnvironment(userId.ToString(), 1);

            // Act
            var response = await advertisementService.Create(request, cancellationToken);

            // Assert
            _identityServiceMock.Verify();
            Assert.NotNull(response);
            Assert.NotEqual(default, response.Id);
示例#15
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);
            }
        }
示例#16
0
        public async Task Throws_Update_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-Update
                var request = new Create.Request
                {
                    Date     = DateTime.UtcNow.Date,
                    Time     = "11:11",
                    Text     = "string",
                    Calories = 3
                };
                await _fixture.SendAsync(request);
            }

            {
                // Arrange
                var request = new Update.Request
                {
                    Id       = Guid.NewGuid(),
                    Date     = DateTime.UtcNow.Date.AddDays(1),
                    Time     = "11:15",
                    Text     = "Another String",
                    Calories = 22
                };

                // Act & Assert
                await Assert.ThrowsAsync <RestException>(() => _fixture.SendAsync(request));
            }
        }
        public async Task <IActionResult> Post(Create.Request request)
        {
            if (request.Model == null)
            {
                return(BadRequest("Invalid body."));
            }

            var @event = new AccountCreated(
                request.CorrelationId,
                request.Model.Type,
                request.Model.Balance);

            session.Events.StartStream <Account>(request.Model.Id, @event);

            await session.SaveChangesAsync(new CancellationToken()).ConfigureAwait(false);

            return(StatusCode(201)); //return the route you dingus.
        }
示例#18
0
        public async Task <Create.Response> Create(Create.Request request, CancellationToken cancellationToken)
        {
            var userId = await _identityService.GetCurrentUserId(cancellationToken);

            var ad = new Domain.Ad
            {
                Price     = request.Price,
                Status    = Domain.Ad.Statuses.Created,
                OwnerId   = userId,
                CreatedAt = DateTime.UtcNow
            };
            await _repository.Save(ad, cancellationToken);

            return(new Create.Response
            {
                Id = ad.Id
            });
        }
示例#19
0
        public async Task Should_Get_Account_Index_Without_Filter()
        {
            _fixture.StartScope();

            {   // Arrange-TestAccountList
                var request = new Create.Request
                {
                    Email    = "*****@*****.**",
                    Password = Guid.NewGuid().ToString()
                };
                await _fixture.SendAsync(request);

                request.Email = "*****@*****.**";
                await _fixture.SendAsync(request);

                request.Email = "*****@*****.**";
                await _fixture.SendAsync(request);

                // Act
                var count =
                    await _fixture.CountAsync <Account>();

                // Assert
                // There is also an AdminAccount
                Assert.Equal(3 + 1, count);
            }

            {
                // Arrange
                var request = new Index.Request
                {
                    PageSize = 100
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(4, response.Items.Count);
            }
        }
示例#20
0
        public async Task Throws_Get_Token_Exception_For_Invalid_Credentials()
        {
            // Arrange
            _fixture.StartScope();

            var createRequest = new Create.Request
            {
                Email    = "*****@*****.**",
                Password = Guid.NewGuid().ToString()
            };

            var request = new Token.Request
            {
                Email    = _fixture.GetEmail(),
                Password = createRequest.Password
            };

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

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

            {   // Arrange-Account
                var request = new 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 Update.Request
                {
                    Password = Guid.NewGuid().ToString()
                };
                var passwordHasher = _fixture.GetService <IPasswordHasher>();

                // Act
                await _fixture.SendAsync(request);

                var account =
                    await _fixture.ExecuteDbContextAsync(db => db.Accounts.SingleOrDefaultAsync(x => x.Id == testAccount.Id));

                // Assert
                Assert.NotNull(account);
                Assert.True(passwordHasher.VerifyHashedPassword(request.Password, account.PasswordHash));
            }
        }
示例#22
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);
            }
        }
示例#23
0
        public async Task Should_Create_Account()
        {
            // Arrange
            _fixture.StartScope();
            var request = new Create.Request
            {
                Email    = "*****@*****.**",
                Password = Guid.NewGuid().ToString()
            };
            var passwordHasher = _fixture.GetService <IPasswordHasher>();

            // Act
            var response = await _fixture.SendAsync(request);

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

            // Assert
            Assert.NotNull(response);
            Assert.NotEmpty(response.Token);
            Assert.NotNull(account);
            Assert.Equal(request.Email, account.Email);
            Assert.True(passwordHasher.VerifyHashedPassword(request.Password, account.PasswordHash));
        }
示例#24
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));
            }
        }
示例#25
0
 public Task <IActionResult> Create(Create.Request request)
 {
     return(_createHandler.ExecuteHandler(request, _mapper.Map <ApiPlayer>));
 }
示例#26
0
        public async Task Should_Get_Meal_Index_With_Filter()
        {
            _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-AccountSetting
                var request = new Api.Features.Account.UpdateSetting.Request
                {
                    TargetCalories = 10
                };
                await _fixture.SendAsync(request);
            }

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

                request.Text = "string";
                await _fixture.SendAsync(request);

                request.Text = "string1";
                await _fixture.SendAsync(request);

                request.Text = "OverCalories"; // Now => 3+3+3+3 > 10
                await _fixture.SendAsync(request);

                request.Date = request.Date.AddDays(1); // This will be used to create complex query
                request.Text = "New Day";
                await _fixture.SendAsync(request);

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

                // Assert
                Assert.Equal(5, count);
            }

            {   // Single Result Test
                // Arrange
                var request = new Index.Request
                {
                    Filter = "CalorieStatus = 'false'"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Single(response.Items);
                Assert.Equal("11:11", response.Items.First().Time);
                Assert.Equal("OverCalories", response.Items.First().Text);
            }

            {   // Multiple Result Test With Single Filter
                // Arrange
                var request = new Index.Request
                {
                    Filter = "CalorieStatus = 'true'"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(4, response.Items.Count);
            }

            {   // Multiple Result Test With Multiple Filter
                // Arrange
                var request = new Index.Request
                {
                    Filter = "(CalorieStatus = 'false') or (Text eq 'string')"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                // 2 item by Text = 'string' + 1 item by CalorieStatus = 'false'
                Assert.Equal(3, response.Items.Count);
                Assert.Contains(response.Items, x => x.Text.Equals("string"));
                Assert.Contains(response.Items, x => x.Text.Equals("OverCalories"));
            }

            {   // Single Result Test With Complex Multiple Filter
                // Arrange
                var request = new Index.Request
                {
                    Filter = $"(CalorieStatus = 'true' or Text = 'New Day') AnD Date = '{DateTime.UtcNow.Date}'"
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(3, response.Items.Count);

                // Because of date expression
                Assert.DoesNotContain(response.Items, x => x.Text.Equals("New Day"));

                // Because of CalorieStatus expression
                // Even if first part of the expression matches this item, second part eliminated it
                Assert.DoesNotContain(response.Items, x => x.Text.Equals("OverCalories"));
                Assert.DoesNotContain(response.Items, x => x.CalorieStatus.Equals(false));
            }
        }
示例#27
0
        public async Task Should_Get_Meal_Index_Without_Filter()
        {
            _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-AccountSetting
                var request = new Api.Features.Account.UpdateSetting.Request
                {
                    TargetCalories = 10
                };
                await _fixture.SendAsync(request);
            }

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

                request.Date = request.Date.AddDays(1);
                request.Text = "string";
                await _fixture.SendAsync(request);

                request.Date = request.Date.AddDays(1);
                request.Text = "string1";
                await _fixture.SendAsync(request);

                request.Date = request.Date.AddDays(1);
                request.Text = "string1";
                await _fixture.SendAsync(request);

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

                // Assert
                Assert.Equal(4, count);
            }

            {
                // Arrange
                var request = new Index.Request
                {
                    PageSize = 100
                };

                // Act
                var response = await _fixture.SendAsync(request);

                // Assert
                Assert.NotNull(response);
                Assert.Equal(4, response.Items.Count);
            }
        }
示例#28
0
 public async Task <int> CreateGroup(Create.Request request)
 {
     return(await _mediator.Send(request));
 }