public async Task ShouldGetSavedEstablishment() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test3") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); var expectedEstablishment = new Establishment(1, "test", "Restaurant", string.Empty, "Pass", Point.Empty); await whereToBiteContext.Establishments.AddAsync(expectedEstablishment); await whereToBiteContext.SaveChangesAsync(); var actual = await establishmentRepository.GetAsync(expectedEstablishment.Id, CancellationToken.None); Assert.Equal(expectedEstablishment.Address, actual.Address); Assert.Equal(expectedEstablishment.Name, actual.Name); Assert.Equal(expectedEstablishment.Type, actual.Type); Assert.Equal(expectedEstablishment.EstablishmentStatus, actual.EstablishmentStatus); }
public async Task ShouldGetEstablishmentsWithinRadius() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test4") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); var expectedEstablishment = new Establishment( 1, "test", "Restaurant", string.Empty, "Pass", new Point(-79.45886, 43.65493)); var expectedInspection = new Inspection(InspectionStatus.Pass.ToString(), DateTime.Today.AddDays(-10)); var expectedInfraction = new Infraction( "C - Crucial", "Ticket", expectedInspection.Date, "Fine", 10000.00m); var expectedInfractionTwo = new Infraction( "M - Minor", "Ticket", expectedInspection.Date, "Fine", 10.00m); expectedInspection.AddNewInfractions(new [] { expectedInfraction, expectedInfractionTwo }); expectedEstablishment.AddNewInspections(new [] { expectedInspection }); await whereToBiteContext.Establishments.AddAsync(expectedEstablishment); await whereToBiteContext.SaveChangesAsync(); var actual = await establishmentRepository.GetAllWithinRadiusAsync( 1000, new Point(-79.46377746577373, 43.655427942971166), CancellationToken.None); var actualEstablishment = Assert.Single(actual); Assert.NotNull(actualEstablishment); Assert.Equal(expectedEstablishment.Address, actualEstablishment.Address); Assert.Equal(expectedEstablishment.Name, actualEstablishment.Name); Assert.Equal(expectedEstablishment.Type, actualEstablishment.Type); Assert.Equal(expectedEstablishment.EstablishmentStatus, actualEstablishment.EstablishmentStatus); Assert.Equal( expectedInfraction.AmountFined + expectedInfractionTwo.AmountFined, actualEstablishment.Inspections.Select(x => x.Infractions.Sum(infraction => infraction.AmountFined)).Sum()); }
public async Task ShouldPersistEstablishment() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test2") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); var expectedEstablishment = new Establishment(1, "test", "Restaurant", string.Empty, "Pass", Point.Empty); var infraction = new Infraction("M - Minor", "Ticket", DateTime.Now, "", 0m); var inspection = new Inspection("Pass", DateTime.Now); inspection.AddNewInfractions(new[] { infraction }); var inspections = new[] { inspection }; expectedEstablishment.AddNewInspections(inspections); await establishmentRepository.AddIfNotExistsAsync(expectedEstablishment, CancellationToken.None); await establishmentRepository.UnitOfWork.SaveEntitiesAsync(); var actualEstablishment = whereToBiteContext.Establishments.FirstOrDefault(); Assert.NotNull(actualEstablishment); Assert.Equal(expectedEstablishment.DineSafeId, actualEstablishment.DineSafeId); Assert.Equal(expectedEstablishment.Name, actualEstablishment.Name); Assert.Equal(expectedEstablishment.Type, actualEstablishment.Type); Assert.Equal(expectedEstablishment.EstablishmentStatus, actualEstablishment.EstablishmentStatus); Assert.NotEmpty(actualEstablishment.Inspections); var expectedInspection = expectedEstablishment.Inspections.FirstOrDefault(); var actualInspection = actualEstablishment.Inspections.FirstOrDefault(); Assert.NotNull(expectedInspection); Assert.NotNull(actualInspection); Assert.Equal(expectedInspection.InspectionStatus, actualInspection.InspectionStatus); var expectedInfraction = expectedInspection.Infractions.FirstOrDefault(); var actualInfraction = actualInspection.Infractions.FirstOrDefault(); Assert.NotNull(expectedInfraction); Assert.NotNull(actualInfraction); Assert.Equal(expectedInfraction.InfractionAction, actualInfraction.InfractionAction); Assert.Equal(expectedInfraction.Severity, actualInfraction.Severity); Assert.Equal(expectedInfraction.AmountFined, actualInfraction.AmountFined); }
public DineSafeDataExtractorTests() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("TestDb") .Options; _whereToBiteContext = new WhereToBiteContext(options); _dineSafeDataExtractor = CreateDineSafeDataExtractor(); }
public async Task ShouldReturnEstablishmentInspections() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test5") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); var expectedEstablishment = new Establishment( 1, "test", "Restaurant", string.Empty, "Pass", new Point(-79.45886, 43.65493)); var expectedInspection = new Inspection(InspectionStatus.Pass.ToString(), DateTime.Today.AddDays(-10)); var expectedInfraction = new Infraction( "C - Crucial", "Ticket", expectedInspection.Date, "Fine", 10000.00m); var expectedInfractionTwo = new Infraction( "M - Minor", "Ticket", expectedInspection.Date, "Fine", 10.00m); expectedInspection.AddNewInfractions(new [] { expectedInfraction, expectedInfractionTwo }); expectedEstablishment.AddNewInspections(new [] { expectedInspection }); await whereToBiteContext.Establishments.AddAsync(expectedEstablishment); await whereToBiteContext.SaveChangesAsync(); // act var actual = await establishmentRepository.GetInspectionsAsync(1, CancellationToken.None); Assert.NotNull(actual); var actualInspection = Assert.Single(actual); Assert.NotNull(actualInspection); Assert.Equal(expectedInspection.Date, actualInspection.Date); Assert.Equal(expectedInspection.Id, actualInspection.Id); Assert.Equal(expectedInspection.InspectionStatus, actualInspection.InspectionStatus); Assert.Equal(expectedInspection.Infractions.Count, actualInspection.Infractions.Count); }
public void ShouldCreateInstance() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test1") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); Assert.NotNull(establishmentRepository); }
public async Task SeedAsync(WhereToBiteContext context, IWebHostEnvironment env, ILogger <WhereToBiteContextSeed> logger) { var policy = CreatePolicy(logger, nameof(WhereToBiteContextSeed)); await policy.ExecuteAsync(async() => { if (!context.EstablishmentStatus.Any()) { await context.EstablishmentStatus.AddAsync(EstablishmentStatus.Pass); await context.EstablishmentStatus.AddAsync(EstablishmentStatus.ConditionalPass); await context.EstablishmentStatus.AddAsync(EstablishmentStatus.Closed); await context.SaveEntitiesAsync(); } if (!context.InfractionActions.Any()) { await context.InfractionActions.AddAsync(InfractionAction.NoticeToComply); await context.InfractionActions.AddAsync(InfractionAction.EducationProvided); await context.InfractionActions.AddAsync(InfractionAction.CorrectedDuringInspection); await context.InfractionActions.AddAsync(InfractionAction.Summons); await context.InfractionActions.AddAsync(InfractionAction.SummonsAndHealthHazardOrder); await context.InfractionActions.AddAsync(InfractionAction.Ticket); await context.InfractionActions.AddAsync(InfractionAction.NotInCompliance); await context.InfractionActions.AddAsync(InfractionAction.SummonsByLaw); await context.InfractionActions.AddAsync(InfractionAction.ClosureOrder); await context.SaveEntitiesAsync(); } if (!context.InspectionStatus.Any()) { await context.InspectionStatus.AddAsync(InspectionStatus.Pass); await context.InspectionStatus.AddAsync(InspectionStatus.ConditionalPass); await context.InspectionStatus.AddAsync(InspectionStatus.Closed); await context.SaveEntitiesAsync(); } if (!context.Severities.Any()) { await context.Severities.AddAsync(Severity.Minor); await context.Severities.AddAsync(Severity.Significant); await context.Severities.AddAsync(Severity.Crucial); await context.Severities.AddAsync(Severity.NotApplicable); await context.SaveEntitiesAsync(); } }); }
public async Task ShouldThrowIfCenterIsNull() { var options = new DbContextOptionsBuilder <WhereToBiteContext>() .UseInMemoryDatabase("test5") .Options; var whereToBiteContext = new WhereToBiteContext(options); var establishmentRepository = new EstablishmentRepository(whereToBiteContext); var expectedEstablishment = new Establishment(1, "test", "Restaurant", string.Empty, "Pass", new Point(-79.45886, 43.65493)); await whereToBiteContext.Establishments.AddAsync(expectedEstablishment); await whereToBiteContext.SaveChangesAsync(); await Assert.ThrowsAsync <ArgumentNullException>(() => establishmentRepository.GetAllWithinRadiusAsync(1000, null !, CancellationToken.None)); }
public EstablishmentRepository(WhereToBiteContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); }