/**
* Copyright (C) 2007 - 2016 52°North Initiative for Geospatial Open Source
* Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.n52.wps.algorithm.descriptor;
import junit.framework.TestCase;
/**
*
* @author tkunicki
*/
public class DescriptorTest extends TestCase {
public DescriptorTest(String testName) {
super(testName);
}
public void testIdentifier() {
DescriptorImpl descriptor = null;
boolean thrown = false;
try {
new DescriptorImpl.Builder(null);
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
thrown = true;
}
assertTrue(thrown);
thrown = false;
try {
new DescriptorImpl.Builder("");
fail("Expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
thrown = true;
}
assertTrue(thrown);
// set case: set to 'an_identifier'
descriptor = (new DescriptorImpl.Builder("mock_identifier")).build();
assertEquals("mock_identifier", descriptor.getIdentifier());
}
public void testTitle() {
DescriptorImpl descriptor = null;
// default case: title is not initialized and therefore is null;
descriptor = (new DescriptorImpl.Builder("mock_identifier")).build();
assertNull(descriptor.getTitle());
assertFalse(descriptor.hasTitle());
// unset annotation case: 'title' default/unset value for annotations
// is empty string as 'null' is not a valid annotation value;
descriptor = (new DescriptorImpl.Builder("mock_identifier")).title("").build();
assertEquals("", descriptor.getTitle());
assertFalse(descriptor.hasTitle());
// set case: set to 'an_title'
descriptor = (new DescriptorImpl.Builder("mock_identifier")).title("mock_title").build();
assertEquals("mock_title", descriptor.getTitle());
assertTrue(descriptor.hasTitle());
}
public void testAbstract() {
DescriptorImpl descriptor = null;
// default case: abstrakt is not initialized and therefore is null;
descriptor = (new DescriptorImpl.Builder("mock_identifier")).build();
assertNull(descriptor.getAbstract());
assertFalse(descriptor.hasAbstract());
// unset annotation case: 'abstrakt' default/unset value for annotations
// is empty string as 'null' is not a valid annotation value;
descriptor = (new DescriptorImpl.Builder("mock_identifier")).abstrakt("").build();
assertEquals("", descriptor.getAbstract());
assertFalse(descriptor.hasAbstract());
// set case: set to 'an_abstrakt'
descriptor = (new DescriptorImpl.Builder("mock_identifier")).abstrakt("an_abstract").build();
assertEquals("an_abstract", descriptor.getAbstract());
assertTrue(descriptor.hasAbstract());
}
// Dummy implementation, Descriptor and Builder classes are abstract
// so we need to provide an concrete implementation to test.
public static class DescriptorImpl extends Descriptor {
private DescriptorImpl(Builder builder) { super(builder); }
public static class Builder extends Descriptor.Builder<Builder> {
Builder(String identifier) { super(identifier); }
@Override protected Builder self() { return this; }
public DescriptorImpl build() { return new DescriptorImpl(this); }
}
}
}