public void MarkFoundPlate_WhenPlateIdDoesNotExist_ShouldThrow() { //Arrange var fakeIQueryable = new List <MissingLicensePlate>().AsQueryable(); var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.MissingLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var missingPlateHelper = new MissingPlateHelper(fakeDbContextFactory); var expectedId = 5; var expectedStartSearchDateTime = new DateTime(2018, 08, 17); var expectedSearch = LicensePlateFoundStatus.Found; //Act & Assert Assert.Throws <ArgumentException>(() => missingPlateHelper.MarkFoundPlate(expectedId, expectedStartSearchDateTime, expectedSearch)); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustNotHaveHappened(); }
public void MarkFoundPlate_WhenPlateIdExist_ShouldSucceed() { var missingPlateObj = new MissingLicensePlate() { Id = 1, SearchStartDateTime = new DateTime(2018, 05, 08), Status = LicensePlateFoundStatus.NotFound }; //Arrange var fakeIQueryable = new List <MissingLicensePlate>() { missingPlateObj }.AsQueryable(); var fakeDbSet = StorageTestsUtil.SetupFakeDbSet(fakeIQueryable); var fakeHucaresContext = A.Fake <HucaresContext>(); A.CallTo(() => fakeHucaresContext.MissingLicensePlates) .Returns(fakeDbSet); var fakeDbContextFactory = A.Fake <IDbContextFactory>(); A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .Returns(fakeHucaresContext); var expectedSearch = LicensePlateFoundStatus.Found; var missingPlateHelper = new MissingPlateHelper(fakeDbContextFactory); var result = missingPlateHelper.MarkFoundPlate(missingPlateObj.Id, DateTime.Now, expectedSearch); //Act & Assert A.CallTo(() => fakeDbContextFactory.BuildHucaresContext()) .MustHaveHappenedOnceExactly(); A.CallTo(() => fakeDbSet.Add(A <MissingLicensePlate> .Ignored)) .MustNotHaveHappened(); A.CallTo(() => fakeHucaresContext.SaveChanges()) .MustHaveHappenedOnceExactly(); result.ShouldBe(missingPlateObj); missingPlateObj.Status.ShouldBe(expectedSearch); }