public async Task GasStationWithDieselPriceSubmitted_SubmitAnotherDieselPrice_PricesSubmissionIsRejected() { // given var gasStationId = await CreateGasStation(); var submitPriceModel1 = new SubmitPriceModel { Amount = 4, FuelType = FuelType.Diesel, GasStationId = gasStationId }; await fixture.HttpClient.PostJsonAsync(Routes.PriceSubmissions.ToString(), submitPriceModel1); // when var submitPriceModel2 = new SubmitPriceModel { Amount = 5, FuelType = FuelType.Diesel, GasStationId = gasStationId }; var jsonContent = JsonConvert.SerializeObject(submitPriceModel2); var request = new StringContent(jsonContent, Encoding.UTF8, "application/json"); var response = await fixture.HttpClient.PostAsync(Routes.PriceSubmissions, request); // then response.IsSuccessStatusCode.Should().BeFalse(); }
public async Task GasStationWithDieselPriceSubmitted_SubmitPetrolPrice_PricesIsSubmittedSuccessfully() { // given var gasStationId = await CreateGasStation(); var submitPriceModelDiesel = new SubmitPriceModel { Amount = 4, FuelType = FuelType.Diesel, GasStationId = gasStationId }; await fixture.HttpClient.PostJsonAsync(Routes.PriceSubmissions.ToString(), submitPriceModelDiesel); // when var submitPriceModelPetrol = new SubmitPriceModel { Amount = 5, FuelType = FuelType.Pb98, GasStationId = gasStationId }; var createdAt = await fixture.HttpClient.PostJsonAsync <CreatedResponse>(Routes.PriceSubmissions.ToString(), submitPriceModelPetrol); // then var priceSubmission = await fixture.HttpClient.GetJsonAsync <PriceSubmission>($"{ Routes.PriceSubmissions }/{ createdAt.Id }"); priceSubmission.Should().BeEquivalentTo(submitPriceModelPetrol); }
public async Task PriceSubmission_Delete_PriceSubmissionIsDeleted() { // given var gasStationId = await CreateGasStation(); var submitPriceModel = new SubmitPriceModel { Amount = 5, FuelType = FuelType.Pb98, GasStationId = gasStationId }; var createdAt = await fixture.HttpClient.PostJsonAsync <CreatedResponse>(Routes.PriceSubmissions.ToString(), submitPriceModel); // when await fixture.HttpClient.DeleteAsync($"{ Routes.PriceSubmissions }/{ createdAt.Id }"); // then var response = await fixture.HttpClient.GetAsync($"{ Routes.PriceSubmissions }/{ createdAt.Id }"); response.StatusCode.Should().Be(HttpStatusCode.NotFound); }
public async Task GasStationWithSomePriceSubmissions_GetList_SomePriceSubmissionsAreRetrived() { // given var gasStationId = await CreateGasStation(); var submitPriceModel1 = new SubmitPriceModel { Amount = 5, FuelType = FuelType.Pb98, GasStationId = gasStationId }; var submitPriceModel2 = new SubmitPriceModel { Amount = 4, FuelType = FuelType.Diesel, GasStationId = gasStationId }; await fixture.HttpClient.PostJsonAsync(Routes.PriceSubmissions.ToString(), submitPriceModel1); await fixture.HttpClient.PostJsonAsync(Routes.PriceSubmissions.ToString(), submitPriceModel2); // when var priceSubmissions = await fixture.HttpClient.GetJsonAsync <PageResponse <PriceSubmission> >(Routes.PriceSubmissions.ToString()); priceSubmissions.Results.Should().NotBeEmpty(); }
public async Task <long> SubmitPrice(SubmitPriceModel model) { var submission = new Entities.PriceSubmission( gasStationId: model.GasStationId, submissionDate: DateTime.UtcNow.Date, amount: model.Amount, fuelType: model.FuelType); auditMetadataProvider.AddAuditMetadataToNewEntity(submission); dbContext.PriceSubmissions.Add(submission); await dbContext.SaveChangesAsync(); return(submission.Id); }
private async Task <long> CreatePriceSumission() { var addModel = new AddGasStationModel { Name = "Amic Energy" }; var gasStationCreatedAt = await fixture.HttpClient.PostJsonAsync <CreatedResponse>(Routes.GasStations.ToString(), addModel); var submitModel = new SubmitPriceModel { Amount = 5, FuelType = FuelType.Diesel, GasStationId = gasStationCreatedAt.Id }; var priceSubmitedAt = await fixture.HttpClient.PostJsonAsync <CreatedResponse>(Routes.PriceSubmissions.ToString(), submitModel); return(priceSubmitedAt.Id); }
public async Task <IActionResult> Create([FromBody] SubmitPriceModel model) { var id = await priceSubmissionsService.SubmitPrice(model); return(CreatedAtAction(nameof(Get), new { id })); }