/**
* Copyright (C) 2013 Tokanagrammar Team
*
* This is a jigsaw-like puzzle game,
* except each piece is token from a source file,
* and the 'complete picture' is the program.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package edu.umb.cs.source.std;
import edu.umb.cs.source.MetaData;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Scanner;
import static org.junit.Assert.*;
/**
*
* @author Vy Thao Nguyen
*/
public class ParseMetaTest extends SourceTestBase
{
private static final File PATH = new File ("src/test/resources/sources/metadata");
@Override
void doTest(File expted, File in) throws FileNotFoundException, IOException
{
System.out.println("Running test on: " + expted);
MetaData parsedMeta = MetaData.parseMetaData(in.getAbsolutePath());
Scanner scanner = new Scanner(expted);
assertEquals("Category: ", scanner.nextLine().trim(),
parsedMeta.getCategoryName());
assertEquals("Expected output: ", scanner.nextLine().trim(),
parsedMeta.getExpectedOutput());
if (scanner.hasNextLine())
{
String hints[] = scanner.nextLine().trim().split(",");
List<String> actualHints = parsedMeta.getHints();
int size;
assertEquals("Number of hints: ",
hints == null ? 0 : hints.length,
size = actualHints == null ? 0 : actualHints.size());
// order does matter
for (int n = 0; n < size; ++n)
assertEquals("Hint # " + n + ": ",
hints[n].trim(),
actualHints.get(n).trim());
}
else
assertTrue("Expect no hints: ", parsedMeta.getHints() == null);
}
@Override
File getPath()
{
return PATH;
}
}