public void ShouldGetAllOrders() { OrderModule module; Order[] results; IDatabase database; database = Substitute.For <IDatabase>(); database.Execute <Order>(Arg.Any <ISelect>()).Returns(new Order[] { new Order() { OrderID = 1 }, new Order() { OrderID = 2 }, new Order() { OrderID = 3 } }); module = new OrderModule(NullLogger.Instance, database); results = module.GetOrders(); Assert.IsNotNull(results); Assert.AreEqual(3, results.Length); for (int t = 0; t < 3; t++) { Assert.IsNotNull(results[t]); Assert.AreEqual(t + 1, results[t].OrderID); } }
public void ShouldNotGetAllOrdersAndLogError() { OrderModule module; MemoryLogger logger; IDatabase database; logger = new MemoryLogger(); database = Substitute.For <IDatabase>(); database.Execute <Order>(Arg.Any <ISelect>()).Returns((x) => { throw new Exception(); }); module = new OrderModule(logger, database); Assert.ThrowsException <PIODataException>(() => module.GetOrders()); Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName))); }