@Test(expected=InvalidWorkAreaLengthException.class) public void testCreateWorkArea_invalidLength() { Registry.clearWorkAreas(); new WorkAreaConfig(this.id, 13, this.isWorkAreaOne,this.fields,this.outputFilters).createWorkArea(); }
public WorkArea createWorkArea() { if(Registry.containsWorkArea(this.id)) { return Registry.getWorkArea(this.id); } SortedSet<Field> uniqueSet = new TreeSet<Field>(); validate(this.fields, uniqueSet); List<Filter> oFilters = this.outputFilters != null ? this.outputFilters : Collections.<Filter>emptyList(); WorkArea workArea = new WorkArea(this.id, uniqueSet, oFilters); validate(workArea); Registry.addWorkArea(workArea); return workArea; }
protected List<Field> validate(List<Field> configuredFields, SortedSet<Field> uniqueSet) { List<Field> duplicates = new ArrayList<Field>(); for (Field field : configuredFields) { if(!uniqueSet.add(field)) { Field fieldAlreadyInTheSet = findDuplicate(field, uniqueSet); log.debug("Field [id={}] has a duplicate start and length of Field [id={}] and will NOT be added to WorkArea[id={}]", field.getId(), fieldAlreadyInTheSet.getId(), this.id); duplicates.add(field); } } return duplicates; }
@Test public void testConstructor_valid() { assertEquals(this.id, this.workAreaConfig.getId()); assertTrue(this.length==this.workAreaConfig.getLength()); assertTrue(this.workAreaConfig.isWorkAreaOne()); assertEquals(this.outputFilters, this.workAreaConfig.getOutputFilters()); }
private void assertWorkAreaConfig(WorkAreaConfig wConfig, boolean isWorkAreaOne) { assertNotNull(wConfig.getId()); assertTrue(wConfig.getLength() > 0); if (isWorkAreaOne) { assertTrue(wConfig.isWorkAreaOne()); List<Field> fields = wConfig.getFields(); assertFalse(fields.isEmpty()); for (Field field : fields) { assertField(field); } } else { assertFalse(wConfig.isWorkAreaOne()); } }
@Test public void testValidateList() { Field duplicate = new Field("duppy",TestData.fieldOne.getStart(),TestData.fieldOne.getLength()); assertEquals(TestData.fieldOne, duplicate); assertTrue(TestData.fieldOne.compareTo(duplicate) == 0); this.workAreaConfig.getFields().add(duplicate); assertEquals(3, this.workAreaConfig.getFields().size()); SortedSet<Field> uniqueFields = new TreeSet<Field>(); List<Field> dupes = this.workAreaConfig.validate(this.workAreaConfig.getFields(), uniqueFields); assertEquals(1, dupes.size()); assertTrue(dupes.contains(duplicate)); assertEquals(2, uniqueFields.size()); assertTrue(uniqueFields.contains(TestData.fieldOne)); assertTrue(uniqueFields.contains(TestData.fieldTwo)); }
public Function createFunction(Geoclient geoclient) { log.debug("Attempting to create function {}", this.id); WorkArea workAreaOne = this.workAreaOneConfig.createWorkArea(); WorkArea workAreaTwo = null; if (isTwoWorkAreaFunction()) { workAreaTwo = this.workAreaTwoConfig.createWorkArea(); warnIfDuplicateFieldIds(workAreaOne, workAreaTwo); } DefaultConfiguration funConf = this.configuration; if(funConf == null){ log.warn("Function.configuration is null. Defaulting to new instance."); funConf = new DefaultConfiguration(); } GeosupportFunction function = new GeosupportFunction(this.id, workAreaOne, workAreaTwo, geoclient, funConf); return function; }
@Before public void setUp() throws Exception { this.id = "WA1"; this.length = 12; this.isWorkAreaOne = true; this.fields = TestData.newFieldList(TestData.fieldOne, TestData.fieldTwo); this.outputFilters = new ArrayList<Filter>(); this.outputFilters.add(new Filter(TestData.fieldOne.getId())); this.workAreaConfig = new WorkAreaConfig(this.id, this.length, this.isWorkAreaOne, this.fields, this.outputFilters); }
@Test public void testWorkAreaConfig() { boolean foundWorkAreaOne = false; List<WorkAreaConfig> workAreas = xmlReader.getWorkAreas(); for (WorkAreaConfig wConfig : workAreas) { if ("WA1".equals(wConfig.getId())) { foundWorkAreaOne = true; assertWorkAreaConfig(wConfig, true); } else { assertWorkAreaConfig(wConfig, false); } } assertTrue(foundWorkAreaOne); }
@Test public void testCreateWorkArea() { Registry.clearWorkAreas(); WorkArea workArea = this.workAreaConfig.createWorkArea(); assertTrue(Registry.containsWorkArea(workArea.getId())); assertTrue(this.length==workArea.length()); assertTrue(workArea.isFiltered(TestData.fieldOne)); }
@Before public void setUp() throws Exception { this.wa1Config = new WorkAreaConfig("WW1", 12, true, TestData.newFieldList(TestData.fieldOne, TestData.fieldTwo), Collections.<Filter>emptyList()); this.wa2Config = new WorkAreaConfig("WW2_F1B", 4, false, TestData.newFieldList(TestData.makeField("pqr", 1, 4)), Collections.<Filter>emptyList()); this.configuration = new DefaultConfiguration(); // Don't use the names of real functions. Previously, using function "1B" // was causing the real 1B in GeosupportConfigIntegration test to fail // when all tests were run from Maven; basically, the 1B that was // returned by the integration test was the mock one created in // FunctionConfigTest. Issue did not occur within Eclipse or when // test was run individually. this.oneWorkAreaFunction = new FunctionConfig("EG", this.wa1Config, null); this.twoWorkAreaFunction = new FunctionConfig("9B", this.wa1Config, this.wa2Config); this.twoWorkAreaDefaultArgsFunction = new FunctionConfig("12", this.wa1Config, this.wa2Config, this.configuration); }
@Test//(expected=DuplicateFieldNameException.class) public void testCreateTwoWorkAreaFunction_duplicateFields() { WorkAreaConfig duplicateFieldWa2 = new WorkAreaConfig("DUP", TestData.fieldDuplicateIdOfOne.getLength(), true, TestData.newFieldList(TestData.fieldDuplicateIdOfOne),Collections.<Filter>emptyList()); FunctionConfig badFun = new FunctionConfig("DUP", this.wa1Config, duplicateFieldWa2); badFun.createFunction(new GeoclientStub()); }