public void Constructor_Constructs_ValidArguments()
        {
            var loader = Substitute.For <ISalesDataTableLoader>();
            var path   = Fixture.Create <string>();

            var factory = new SalesTableFactory(loader, path);

            Assert.NotNull(factory);
        }
        public void GetTable_ReturnsSalesDataTable_FromTableLoaderTable()
        {
            var path   = Fixture.Create <string>();
            var table  = new DataTable();
            var loader = Substitute.For <ISalesDataTableLoader>();

            loader.GetTable(path).Returns(c => table);

            var factory = new SalesTableFactory(loader, path);

            var result = factory.GetTable().GetAwaiter().GetResult();

            Assert.NotNull(result);
        }
        public void GetTable_ReturnsSameTableLoaderException_TableLoaderThrowsException()
        {
            var path   = Fixture.Create <string>();
            var exc    = Fixture.Create <Exception>();
            var loader = Substitute.For <ISalesDataTableLoader>();

            loader.GetTable(path).Returns(c => throw exc);

            var factory = new SalesTableFactory(loader, path);

            var exception = Assert.ThrowsAny <Exception>(() => factory.GetTable().GetAwaiter().GetResult());

            Assert.Same(exc, exception);
        }