    @Test
    public void testValidateSourceProducts() {

        // correct products
        String[] inputProducts = new String[]{
                "C://test//MER_FRS_CCL2W_20120309_074759_000001893112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2W_20120309_074740_000000563112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2W_20120309_075032_000000873112_00265_52434_0001.nc"
        };

        try {
            testStitcher.validateSourceProducts(inputProducts);
        } catch (IOException e) {
            fail(e.getMessage());
        }

        // mix of L2W and L2R - bad
        inputProducts = new String[]{
                "C://test//MER_FRS_CCL2W_20120309_074759_000001893112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2R_20120309_074740_000000563112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2W_20120309_075032_000000873112_00265_52434_0001.nc"
        };

        try {
            testStitcher.validateSourceProducts(inputProducts);
        } catch (IOException e) {
            assertEquals("Inconsistent source products names (CC identifiers different) - must be checked!", e.getMessage());
        }

        // product has incorrect name
        inputProducts = new String[]{
                "C://test//MER_FRS_CCL2W_20120309_074759_000001893112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2W_20120309_074740_000000563112_00265_52434_0001.nc",
                "C://test//MER_FRS_CCL2W_20120309_bla.nc"
        };

        try {
            testStitcher.validateSourceProducts(inputProducts);
        } catch (IOException e) {
            assertEquals("Inconsistent source products names (have not same length) - must be checked!", e.getMessage());
        }
    }