-
Notifications
You must be signed in to change notification settings - Fork 188
/
AbstractReactorTest.java
40 lines (32 loc) · 1.92 KB
/
AbstractReactorTest.java
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
package com.evolveum.axiom.lang.test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import com.evolveum.axiom.concepts.Lazy;
import com.evolveum.axiom.lang.antlr.AxiomModelStatementSource;
import com.evolveum.axiom.lang.api.AxiomBuiltIn;
import com.evolveum.axiom.lang.api.AxiomItemDefinition;
import com.evolveum.axiom.lang.api.AxiomSchemaContext;
import com.evolveum.axiom.lang.impl.ModelReactorContext;
import com.evolveum.axiom.lang.spi.AxiomSyntaxException;
import com.evolveum.midpoint.tools.testng.AbstractUnitTest;
public abstract class AbstractReactorTest extends AbstractUnitTest {
private static final String COMMON_DIR_PATH = "src/test/resources/";
protected static AxiomSchemaContext parseFile(String name) throws AxiomSyntaxException, FileNotFoundException, IOException {
return parseInputStream(name, new FileInputStream(COMMON_DIR_PATH + name));
}
protected static AxiomSchemaContext parseInputStream(String name, InputStream stream) throws AxiomSyntaxException, FileNotFoundException, IOException {
return parseInputStream(name, stream, AxiomBuiltIn.Item.MODEL_DEFINITION);
}
protected static AxiomSchemaContext parseInputStream(String name, InputStream stream, AxiomItemDefinition rootItemDefinition) throws AxiomSyntaxException, FileNotFoundException, IOException {
ModelReactorContext reactorContext =ModelReactorContext.defaultReactor();
AxiomModelStatementSource statementSource = AxiomModelStatementSource.from(name, stream);
reactorContext.loadModelFromSource(statementSource);
return reactorContext.computeSchemaContext();
}
protected static AxiomModelStatementSource source(String name) throws AxiomSyntaxException, IOException {
InputStream stream = new FileInputStream(COMMON_DIR_PATH + name);
return AxiomModelStatementSource.from(name, stream);
}
}