public async void GetAnnouncement( EStatusCode expectedStatus, GetAnnouncement query ) { var announcement = null as Announcement; if (expectedStatus != EStatusCode.NotFound) { announcement = EntitiesFactory.NewAnnouncement(id: query.Id).Save(); } var(status, result) = await Request.Get <QueryResultOneTest <AnnouncementDetail> >(new Uri($"{Uri}/{query.Id}"), query); Assert.Equal(expectedStatus, status); if (expectedStatus == EStatusCode.Success) { var announcementResult = result.Data; Assert.NotNull(announcementResult); Assert.Equal(announcement.PricePurchase, announcementResult.PricePurchase); Assert.Equal(announcement.PriceSale, announcementResult.PriceSale); Assert.Equal(announcement.DateSale, announcementResult.DateSale); Assert.Equal(announcement.VehicleId, announcementResult.VehicleId); } }
public async void UpdateAnnouncement( EStatusCode expectedStatus, UpdateAnnouncement mutation, bool?withVehicle = false, bool?withAnnouncement = false ) { if (withVehicle.Value) { EntitiesFactory.NewVehicle(id: mutation.VehicleId).Save(); } if (withAnnouncement.Value) { EntitiesFactory.NewAnnouncement(id: mutation.Id).Save(); } var result = await MutationsHandler.Handle(mutation); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == EStatusCode.Success) { var announcementDb = await MutationsDbContext.Announcements .Where(a => a.Id == mutation.Id) .FirstOrDefaultAsync(); Assert.NotNull(announcementDb); Assert.Equal(mutation.PricePurchase, announcementDb.PricePurchase); Assert.Equal(mutation.PriceSale, announcementDb.PriceSale); Assert.Equal(mutation.VehicleId, announcementDb.Vehicle.Id); Assert.Null(announcementDb.DateSale); } }
public async void SellVehicle( EStatusCode expectedStatus, SellVehicle mutation, bool?withVehicle = false, bool?withAnnouncement = false ) { if (withAnnouncement.Value) { EntitiesFactory.NewAnnouncement(vehicleId: withVehicle.Value ? mutation.Id : null).Save(); } var result = await MutationsHandler.Handle(mutation); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == EStatusCode.Success) { var announcementDb = await MutationsDbContext.Announcements .Where(a => a.VehicleId == mutation.Id) .FirstOrDefaultAsync(); Assert.NotNull(announcementDb); Assert.NotNull(announcementDb.DateSale); Assert.Equal(mutation.DateSale.Value.Date, announcementDb.DateSale.Value.Date); } }
public async void CreateReservation( EStatusCode expectedStatus, CreateReservation mutation ) { if (expectedStatus != EStatusCode.NotFound) { EntitiesFactory.NewAnnouncement(id: mutation.AnnouncementId).Save(); } if (expectedStatus == EStatusCode.Conflict) { EntitiesFactory.NewContact(phone: mutation.ContactPhone).Save(); } var result = await MutationsHandler.Handle(mutation); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == EStatusCode.Success) { var reservationDb = await MutationsDbContext.Reservations .Where(r => r.Id == mutation.Id) .FirstOrDefaultAsync(); Assert.NotNull(reservationDb); Assert.Equal(mutation.AnnouncementId, reservationDb.AnnouncementId); Assert.Equal(mutation.ContactName, reservationDb.Contact.Name); Assert.Equal(mutation.ContactPhone, reservationDb.Contact.Phone); } }
public async void ListAnnouncementSelect( EStatusCode expectedStatus, ListAnnouncementSelect query ) { var announcement = EntitiesFactory.NewAnnouncement().Save(); var(status, result) = await Request.Get <QueryResultListTest <AnnouncementSelectList> >(Uri, query); Assert.Equal(expectedStatus, status); if (expectedStatus == EStatusCode.Success) { var announcementResult = result.Data.FirstOrDefault(f => f.Id == announcement.Id); Assert.NotNull(announcementResult); } }
public async void ListAnnouncementReport( EStatusCode expectedStatus, ListAnnouncementReport query ) { var announcement = EntitiesFactory.NewAnnouncement(dateSale: DateTime.Now).Save(); var result = await QueriesHandler.Handle(query); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == EStatusCode.Success) { Assert.NotEmpty(result.Data); var announcementResult = result.Data.FirstOrDefault(a => a.Id == announcement.Id); Assert.NotNull(announcementResult); Assert.Equal(announcement.PriceSale - announcement.PricePurchase, announcementResult.Profit); Assert.Equal(announcement.Vehicle.Model.Brand.Name, announcementResult.VehicleBrandName); Assert.Equal(announcement.Vehicle.Model.Name, announcementResult.VehicleModelName); } }
public async void DeleteAnnouncement( EStatusCode expectedStatus, DeleteAnnouncement mutation ) { if (expectedStatus != EStatusCode.NotFound) { EntitiesFactory.NewAnnouncement(id: mutation.Id).Save(); } var result = await MutationsHandler.Handle(mutation); Assert.Equal(expectedStatus, result.Status); if (expectedStatus == EStatusCode.Success) { var existsAnnouncement = await MutationsDbContext.Announcements.AnyAsync(a => a.Id == mutation.Id); Assert.False(existsAnnouncement); } }
public async void ListAnnouncement( EStatusCode expectedStatus, ListAnnouncement query, bool?exactlyAnnouncement = false ) { var vehicle = EntitiesFactory.NewVehicle( brandId: query.BrandId, modelId: query.ModelId, color: query.ColorId, year: query.Year ).Save(); var announcement = EntitiesFactory.NewAnnouncement( vehicle: vehicle, dateSale: query.DateSale?.DateTime ).Save(); var(status, result) = await Request.Get <QueryResultListTest <AnnouncementList> >(Uri, query); Assert.Equal(expectedStatus, status); if (expectedStatus == EStatusCode.Success) { Assert.True(result.TotalRows > 0); Assert.True(result.Data.Length <= query.Limit); } if (exactlyAnnouncement.Value) { var listAnnouncement = result.Data.ToList(); var announcementResult = listAnnouncement .Where(a => a.Id == announcement.Id) .FirstOrDefault(); Assert.NotNull(announcementResult); Assert.Equal(announcement.PricePurchase, announcementResult.PricePurchase); Assert.Equal(announcement.PriceSale, announcementResult.PriceSale); Assert.Equal(announcement.DateSale.Value.Date, announcementResult.DateSale.Value.Date); Assert.Equal(announcement.Vehicle.Year, announcementResult.VehicleYear); Assert.Equal(announcement.Vehicle.Model.Brand.Name, announcementResult.VehicleBrandName); Assert.Equal(announcement.Vehicle.Model.Name, announcementResult.VehicleModelName); } }