public static async Task <ActionResult> Initialise(IConfiguration configuration) { try { Logger = new ConsoleLogger(); IMapper mapper = Mapper.CreateAndInitialiseMappings(Logger); ActionResult createPersistorResult = CreatePersistor(configuration, out IPersistor persistor); if (!createPersistorResult.IsSuccess) { return(createPersistorResult); } var accountingDataAccess = new AccountingDataAccess(persistor, Logger); var accountingEngine = new AccountingEngine(accountingDataAccess, Logger); AccountingManager = new AccountingManager( accountingEngine, accountingDataAccess, mapper, Logger); return(await AccountingManager.Initialise()); } catch (Exception ex) { var message = $"Unhandled exception: \"{ex.Message}\"."; Logger?.LogError(message, ex); return(ActionResult.CreateFailure(message)); } }
public void SetUp() { list = new List <Expense>(); repository = new InMemoryRepository <Expense>(list); sut = new AccountingEngine(repository); }
public void Works() { var repository = new InMemoryRepository <Expense>(new List <Expense>()); var engine = new AccountingEngine(repository); SystemSettings.Now = () => new DateTime(2000, 1, 2); engine.AddExpense(100m, "groceries"); engine.AddExpense(50m, "school"); SystemSettings.Now = () => new DateTime(2000, 1, 3); engine.AddExpense(250m, "groceries"); SystemSettings.Now = () => new DateTime(2000, 1, 4); var summary = engine .GetSummary(new DateRange(new DateTime(2000, 1, 1), new DateTime(2000, 1, 31))) .OrderBy(it => it.Category) .ToList(); Assert.AreEqual(2, summary.Count); Assert.AreEqual("groceries", summary[0].Category); Assert.AreEqual(350m, summary[0].Amount); Assert.AreEqual("school", summary[1].Category); Assert.AreEqual(50m, summary[1].Amount); }