public void Setup() { EFContextMock = new Mock <EFContext>(); DatabaseFacadeMock = new Mock <DatabaseFacade>(EFContextMock.Object); DbContextTransactionMock = new Mock <IDbContextTransaction>(); DatabaseFacadeMock.Setup(d => d.CurrentTransaction).Returns(DbContextTransactionMock.Object); EFContextMock.Setup(ef => ef.Database).Returns(DatabaseFacadeMock.Object); EFContextMock.Setup(ef => ef.SaveChangesAsync(It.IsAny <CancellationToken>())).ReturnsAsync(1); _appSettingsMock = new Mock <IOptions <AppSettings> >(); _eventServiceMock = new Mock <IEventService>(); _appSettingsMock.SetupGet(e => e.Value).Returns(new AppSettings()); User = new UserIdentity { Email = "*****@*****.**", AgencyId = Guid.NewGuid(), Id = Guid.NewGuid(), BuType = BuType.Pg }; CostStatusResolver = new Mock <ICostStatusResolver>(); _costStatusResolvers = new List <Lazy <ICostStatusResolver, PluginMetadata> > { new Lazy <ICostStatusResolver, PluginMetadata>(() => CostStatusResolver.Object, new PluginMetadata { BuType = User.BuType }) }; var costUser = new CostUser { Id = User.Id, Email = User.Email, ParentId = User.AgencyId }; _costUserMock = EFContextMock.MockAsyncQueryable(new List <CostUser> { costUser }.AsQueryable(), d => d.CostUser); _costUserMock.Setup(cu => cu.FindAsync(User.Id)).ReturnsAsync(costUser); CostStatusService = new CostStatusService( EFContextMock.Object, _eventServiceMock.Object, _costStatusResolvers ); }
public async Task UpdateCostStatus(TestParam param) { // Arrange var cost = MockCost(); var oldLatestRevision = cost.LatestCostStageRevision; // Act var response = await CostStatusService.UpdateCostStageRevisionStatus(cost.Id, param.Status, BuType.Pg); // Assert response.Should().BeTrue(); cost.Status.Should().Be(param.ExpectedCostStatus); cost.LatestCostStageRevision.Status.Should().Be(param.ExpectedLatestRevisionStatus); oldLatestRevision.Status.ShouldBeEquivalentTo(param.OldLatestRevisionStatus); }
public void Setup() { var costStatusResolverMock = new Mock <ICostStatusResolver>(); IEnumerable <Lazy <ICostStatusResolver, PluginMetadata> > metadata = new List <Lazy <ICostStatusResolver, PluginMetadata> > { new Lazy <ICostStatusResolver, PluginMetadata>(() => costStatusResolverMock.Object, new PluginMetadata { BuType = BuType.Pg }) }; _costStatusService = new CostStatusService(_efContext, new Mock <IEventService>().Object, metadata); costStatusResolverMock.Setup(s => s.GetNextStatus(It.IsAny <Guid>(), It.IsAny <CostAction>())).ReturnsAsync(CostStageRevisionStatus.Recalled); }