aboutsummaryrefslogtreecommitdiff
path: root/src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessTest.java
blob: 804d9f6aa6bf1e43001075acaa36fb973e61eb1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/**
 * 
 */
package com.galois.fiveui;

import java.io.IOException;

import junit.framework.Assert;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.BeforeClass;
import org.junit.Test;

import com.google.common.collect.ImmutableList;

/**
 * @author bjones
 *
 */
public class HeadlessTest {
	private static final String RUN_DESCRIPTION_DIR = "src/test/resources/runDescriptions/";
	private static Logger logger = Logger.getLogger("com.galois.fiveui.HeadlessTest");
	
	@BeforeClass
	public static void beforeClass() {
		BasicConfigurator.configure();
		Logger root = Logger.getRootLogger();
		root.setLevel(Level.ERROR);
		logger.setLevel(Level.DEBUG);
		logger.debug("running headless tests...");
	}
    /**
     * Test method for {@link com.galois.com.galois.fiveui.HeadlessRunDescription}, parses
     * 'src/test/resources/runDescriptions/headlessSample0.json'.
     * 
     * @throws IOException 
     */
    @Test
    public final void testDeserialize_headlessSample0() throws IOException {
        
        String jsonFileName = RUN_DESCRIPTION_DIR + "headlessSample0.json";
        String ruleSetLoc = 
                RUN_DESCRIPTION_DIR + "../ruleSets/emptyRuleSet.json";
        RuleSet ruleSetOracle = RuleSet.parseFile(ruleSetLoc);
        HeadlessAtom headlessAtomOracle = 
                new HeadlessAtom("http://testhost", ruleSetOracle);  
        HeadlessRunDescription oracle = 
                new HeadlessRunDescription(ImmutableList.of(headlessAtomOracle));     
        
        HeadlessRunDescription actual = HeadlessRunDescription.parse(jsonFileName);
        assertObjEqual("Object deserialized incorrectly.", oracle, actual);
    }

    /**
     * Test method for {@link com.galois.com.galois.fiveui.HeadlessRunDescription}, parses
     * 'src/test/resources/runDescriptions/headlessSample1.json'.
     * 
     * @throws IOException 
     */
    @Test
    public final void testDeserialize_headlessSample1() throws IOException {
        
        String jsonFileName = RUN_DESCRIPTION_DIR + "headlessSample1.json";
        String ruleSetLoc = RUN_DESCRIPTION_DIR + 
        		"../../../../../rsTester/src/test/resources/ruleSets/headingGuidelines.json";
        RuleSet ruleSetOracle = RuleSet.parseFile(ruleSetLoc);
        HeadlessAtom headlessAtomOracle = 
                new HeadlessAtom("http://testhost", ruleSetOracle);  
        HeadlessRunDescription oracle = 
                new HeadlessRunDescription(ImmutableList.of(headlessAtomOracle));     
        
        HeadlessRunDescription actual = HeadlessRunDescription.parse(jsonFileName);
        assertObjEqual("Object deserialized incorrectly.", oracle, actual);
    }
    
    /**
     * Test method for {@link com.galois.com.galois.fiveui.HeadlessRunDescription}, parses
     * 'src/test/resources/runDescriptions/headlessSample2.json'.
     * 
     * @throws IOException 
     */
    @Test
    public final void testDeserialize_headlessSample2() throws IOException {
        
        String jsonFileName = RUN_DESCRIPTION_DIR + "headlessSample2.json";
        // manually build first HeadlessAtom
        String ruleSetLoc1 = 
                RUN_DESCRIPTION_DIR + "../ruleSets/emptyRuleSet.json";
        RuleSet ruleSetOracle1 = RuleSet.parseFile(ruleSetLoc1);
        HeadlessAtom headlessAtomOracle1 = 
                new HeadlessAtom("http://testhost1", ruleSetOracle1);  
        // manually build second HeadlessAtom
        String ruleSetLoc2 = RUN_DESCRIPTION_DIR + 
        		"../../../../../rsTester/src/test/resources/ruleSets/headingGuidelines.json";

        RuleSet ruleSetOracle2 = RuleSet.parseFile(ruleSetLoc2);
        HeadlessAtom headlessAtomOracle2 = 
                new HeadlessAtom("http://testhost2", ruleSetOracle2);  
        
        HeadlessRunDescription oracle = 
                new HeadlessRunDescription(ImmutableList.of(headlessAtomOracle1, 
                		                                    headlessAtomOracle2));     
        
        HeadlessRunDescription actual = HeadlessRunDescription.parse(jsonFileName);
        assertObjEqual("Object deserialized incorrectly.", oracle, actual);
    }
    
    private void assertObjEqual(String msg, Object oracle, Object actual) {
        Assert.assertTrue(msg + ";\n expected: "+oracle+"\n actual: "+actual,
                oracle.equals(actual));
    }
}