private CompositeProductFileImport csvAndJsonSupported() { return(CompositeProductFileImport.Builder() .registerStrategy(new JsonFileImport()) .registerStrategy(new CsvFileImport()) .build()); }
public void ShouldThrowExceptionWhenNoStrategyFoundForFile() { // Given CompositeProductFileImport composite = anyNotSupported(); StreamReader reader = readNotSupportedFile(); // Then Assert.Throws <ArgumentException>(() => composite.Import(reader)); }
public void ShouldUseCsvFileImportWheMultipleStrategiesArePresent() { // Given CompositeProductFileImport composite = csvAndJsonSupported(); StreamReader reader = readEmptyCsvTestFile(); // When List <Product> result = composite.Import(reader); // Then Assert.IsEmpty(result); }
public void ShouldUseJsonFileImportWhenMultipleStrategiesArePresent() { // Given CompositeProductFileImport composite = csvAndJsonSupported(); StreamReader reader = readJsonTestFile(); List <Product> expectedResult = new List <Product>(); expectedResult.Add(new Product(1, "name", "category", 2.50, 10)); expectedResult.Add(new Product(2, "name2", "category", 3.20, 1)); // When List <Product> result = composite.Import(reader); // Then Assert.AreEqual(expectedResult[0], result[0]); Assert.AreEqual(expectedResult[1], result[1]); }
public MainWindow() { InitializeComponent(); SourceInitialized += (s, e) => { IntPtr handle = (new WindowInteropHelper(this)).Handle; HwndSource.FromHwnd(handle).AddHook(WindowProc); }; MinimizeButton.Click += (s, e) => WindowState = WindowState.Minimized; MaximizeButton.Click += (s, e) => WindowState = WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized; CloseButton.Click += (s, e) => Close(); _productRepository = new ProductRepository(); fileImportData = CompositeProductFileImport.Builder() .registerStrategy(new JsonFileImport()) .registerStrategy(new CsvFileImport()) .build(); _charts = new Charts(); _importDataPage = new ImportDataPage(_productRepository, fileImportData); _manageDataPage = new ManageDataPage(_productRepository); //_visualizeDataPage = new VisualizeDataPage(_productRepository); _mainFrame.Navigate(_importDataPage); }
private CompositeProductFileImport anyNotSupported() { return(CompositeProductFileImport.Builder() .build()); }