annotate gwt-client/src/test/java/test/AbstractModuleRunner.java @ 9570:531a60b7af95

failed tests will be saved to disk
author gernotbelger
date Mon, 05 Nov 2018 17:15:30 +0100
parents 86e522bc7f36
children
rev   line source
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
1 package test;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
2
9570
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
3 import java.io.File;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
4 import java.io.IOException;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
5 import java.util.ArrayList;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
6 import java.util.List;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
7
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
8 import org.dive4elements.artifacts.common.ArtifactNamespaceContext;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
9 import org.dive4elements.artifacts.common.utils.ClientProtocolUtils;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
10 import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
11 import org.dive4elements.artifacts.httpclient.http.HttpClient;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
12 import org.dive4elements.artifacts.httpclient.http.HttpClientImpl;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
13 import org.dive4elements.artifacts.httpclient.http.response.DocumentResponseHandler;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.httpclient.utils.XMLUtils;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.client.server.AdvanceServiceImpl;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.client.server.ArtifactHelper;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.client.server.CollectionHelper;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.client.server.CreateCollectionServiceImpl;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.client.server.FLYSArtifactCreator;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.client.server.FeedServiceImpl;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.client.server.auth.DefaultUser;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.client.server.auth.User;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
23 import org.dive4elements.river.client.server.auth.UserClient;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.client.shared.exceptions.ServerException;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.client.shared.model.Artifact;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
26 import org.dive4elements.river.client.shared.model.Collection;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.client.shared.model.Data;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
28 import org.dive4elements.river.client.shared.model.DataItem;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
29 import org.dive4elements.river.client.shared.model.DefaultCollection;
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
30 import org.dive4elements.river.client.shared.model.DefaultData;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
31 import org.dive4elements.river.client.shared.model.DefaultDataItem;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
32 import org.dive4elements.river.client.shared.model.OutputMode;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
33 import org.dive4elements.river.client.shared.model.StringOptionsData;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
34 import org.junit.Assert;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
35 import org.w3c.dom.Document;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
36 import org.w3c.dom.Element;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
37
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
38 import test.AbstractBerechnungsartenTester.River;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
39
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
40 /**
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
41 * @author Domenico Nardi Tironi
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
42 *
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
43 */
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
44 public abstract class AbstractModuleRunner {
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
45
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
46 public enum Infotype {
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
47 sinfo, uinfo, bundu
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
48 }
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
49
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
50 private final static String USERNAME = "belger";
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
51
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
52 private final static String PASSWORD = "belger";
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
53
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
54 private final String serverUrl = "http://localhost:8181";
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
55 private final String locale = "de";
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
56 private final HttpClient client;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
57
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
58 private final Infotype infotype;
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
59 private static String userUuid;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
60 private Collection collection;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
61 private Artifact artifact;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
62
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
63 // common attributes
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
64 private final ICalcMode iCalcMode;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
65 private final double from;
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
66 private final double to;
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
67 private final River river;
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
68 private final List<ModuleRunnerOutput> outputList;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
69
9570
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
70 protected final File testFolder;
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
71
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
72 public AbstractModuleRunner(final File testFolder, final Infotype infotype, final ICalcMode calcmode, final double from, final double to,
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
73 final River beispielfluss) throws ConnectionException, ServerException {
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
74 // common attributes (evtl. doch in subklassen, evtl. Zwischenhierarchiestufe einführen
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
75 this.outputList = new ArrayList<ModuleRunnerOutput>();
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
76 this.iCalcMode = calcmode;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
77 this.river = beispielfluss;
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
78 this.from = from;
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
79 this.to = to;
9570
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
80 this.testFolder = testFolder;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
81
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
82 this.infotype = infotype;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
83
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
84 // init
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
85 this.client = new HttpClientImpl(this.serverUrl, this.locale);
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
86 if (AbstractModuleRunner.userUuid == null)
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
87 AbstractModuleRunner.userUuid = makeUserUuid(this.serverUrl);
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
88 this.collection = getCollection();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
89 this.artifact = getArtifact();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
90 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
91
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
92 private static String makeUserUuid(final String serverUrl) throws ConnectionException {
9497
d6d5ca6d4af0 Enabled logging of saml-group-name in log-ing logfile.
gernotbelger
parents: 9441
diff changeset
93 final User user = new DefaultUser(USERNAME, PASSWORD, null, false, new ArrayList<String>(), new ArrayList<String>(), null);
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
94 final UserClient userClient = new UserClient(serverUrl);
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
95 Element userElement;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
96
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
97 userElement = userClient.findUser(user);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
98 return userElement.getAttributeNS(ArtifactNamespaceContext.NAMESPACE_URI, "uuid");
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
99
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
100 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
101
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
102 protected final Artifact getArtifact() throws ServerException, ConnectionException {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
103 if (this.artifact == null) {
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
104 this.artifact = ArtifactHelper.createArtifact(this.serverUrl, this.locale, this.infotype.name(), null);
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
105 setCollection(CollectionHelper.addArtifact(getCollection(), this.artifact, this.serverUrl, this.locale)); // wichtig; sorgt für Persistenz
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
106 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
107 return this.artifact;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
108 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
109
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
110 protected Collection getCollection() throws ConnectionException {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
111
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
112 if (this.collection == null) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
113 // lazy-Loading
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
114 final Document create = ClientProtocolUtils.newCreateCollectionDocument(null);
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
115 final Document doc = (Document) this.client.createCollection(create, userUuid, new DocumentResponseHandler());
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
116 final String uuid = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_UUID, ArtifactNamespaceContext.INSTANCE);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
117 final String ttlStr = XMLUtils.xpathString(doc, CreateCollectionServiceImpl.XPATH_COLLECTION_TTL, ArtifactNamespaceContext.INSTANCE);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
118 this.collection = new DefaultCollection(uuid, Long.valueOf(ttlStr), uuid);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
119 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
120 return this.collection;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
121
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
122 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
123
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
124 private final void setCollection(final Collection collection) {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
125 this.collection = collection;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
126 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
127
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
128 private final void setArtifact(final Artifact artifact) {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
129 this.artifact = artifact;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
130 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
131
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
132 public abstract void runTest() throws ConnectionException, ServerException, IOException;
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
133
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
134 protected final void describeCollection() throws ConnectionException {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
135
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
136 final String uuid = getCollection().identifier();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
137 final Document describe = ClientProtocolUtils.newDescribeCollectionDocument(uuid);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
138 final Document response = (Document) this.client.doCollectionAction(describe, uuid, new DocumentResponseHandler());
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
139 final Collection c = CollectionHelper.parseCollection(response);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
140 setCollection(c);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
141
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
142 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
143
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
144 protected final void feedAndGo(final Data[] data, final int reachableStateIndex) throws ConnectionException, ServerException {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
145 feed(data);
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
146 advance(getReachableStateByIndex(getArtifact(), reachableStateIndex)); // reachablestate könnte auch String sein.
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
147 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
148
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
149 protected final String getReachableStateByIndex(final Artifact artifact, final int index) {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
150
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
151 final String[] states = artifact.getArtifactDescription().getReachableStates();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
152 if (states != null) {
9210
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
153
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
154 if (states.length > index)
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
155 return states[index];
9210
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
156
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
157 return states[0];
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
158 }
9210
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
159
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
160 return "";
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
161 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
162
9226
83aee0942eae JUnit-Tests - tkh works
gernotbelger
parents: 9210
diff changeset
163 protected final void feed(final Data[] data) throws ServerException, ConnectionException {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
164 final Document feed = ClientProtocolUtils.newFeedDocument(getArtifact().getUuid(), getArtifact().getHash(), createKVP(data));
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
165 final Document description = (Document) this.client.feed(
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
166 new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), feed,
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
167 new DocumentResponseHandler());
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
168
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
169 final String result = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
170
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
171 if (result == null || !result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
172 setArtifact((Artifact) new FLYSArtifactCreator().create(description));
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
173 } else if (result != null && result.equals(FeedServiceImpl.OPERATION_FAILURE)) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
174 final String msg = XMLUtils.xpathString(description, FeedServiceImpl.XPATH_RESULT_MSG, ArtifactNamespaceContext.INSTANCE);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
175 throw new ServerException(msg);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
176 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
177 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
178
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
179 protected final Data[] extractPairData(final List<String> pairIds, final String dataName) {
9228
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
180 final DataItem[] items = new DataItem[pairIds.size()];
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
181 int i = 0;
9228
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
182 final StringBuilder builder = new StringBuilder();
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
183 for (final String pairId : pairIds) {
9228
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
184 builder.append(pairId).append("#");
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
185 i++;
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
186 }
9228
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
187 final String allPairIds = builder.delete(builder.length() - 1, builder.length()).toString(); // letztes Gatter entfernen
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
188 final DataItem[] item = new DataItem[] { new DefaultDataItem(allPairIds, allPairIds, allPairIds) };
dba14da43f23 JUnit-Tests finish
gernotbelger
parents: 9226
diff changeset
189 return new Data[] { new StringOptionsData(dataName, dataName, item) };
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
190 }
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
191
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
192 private final String[][] createKVP(final Data[] data) {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
193 if (data != null) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
194 final String[][] kvp = new String[data.length][];
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
195
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
196 int i = 0;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
197
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
198 for (final Data d : data) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
199 final String key = d.getLabel();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
200 final String value = d.getStringValue();
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
201
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
202 kvp[i++] = new String[] { key, value };
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
203 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
204
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
205 return kvp;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
206 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
207 return null;
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
208 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
209
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
210 protected final void advance(final String target) throws ConnectionException, ServerException {
9031
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
211 final Document advance = ClientProtocolUtils.newAdvanceDocument(getArtifact().getUuid(), getArtifact().getHash(), target);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
212 final Document description = (Document) this.client.advance(
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
213 new org.dive4elements.artifacts.httpclient.objects.Artifact(getArtifact().getUuid(), getArtifact().getHash()), advance,
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
214 new DocumentResponseHandler());
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
215
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
216 if (description == null) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
217 throw new ServerException(AdvanceServiceImpl.ERROR_ADVANCE_ARTIFACT);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
218 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
219
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
220 final String result = XMLUtils.xpathString(description, AdvanceServiceImpl.XPATH_RESULT, ArtifactNamespaceContext.INSTANCE);
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
221
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
222 if (result == null || !result.equals(AdvanceServiceImpl.OPERATION_FAILURE)) {
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
223 setArtifact((Artifact) new FLYSArtifactCreator().create(description));
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
224 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
225 }
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
226
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
227 /// ExportServiceImpl
efd2de78d158 work on unit testing
gernotbelger
parents:
diff changeset
228
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
229 protected final void selectCalcMode() throws ConnectionException, ServerException {
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
230
9422
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
231 /* Select ICalcMode */
e567fac95e3d uinfo salix no scenario jUnit test
gernotbelger
parents: 9228
diff changeset
232 final String calcmodeStr = this.iCalcMode.toString();
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
233 final Data dataCalcMode = new StringOptionsData("calculation_mode", "calculation_mode",
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
234 new DataItem[] { new DefaultDataItem(calcmodeStr, calcmodeStr, calcmodeStr) });
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
235 feedAndGo(new Data[] { dataCalcMode }, 0);
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
236 }
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
237
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
238 protected final void selectRange() throws ConnectionException, ServerException {
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
239 makeKmRange(this.getFrom(), this.getTo(), "ld_from", "ld_to");
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
240
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
241 }
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
242
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
243 protected final void makeKmRange(final double from, final double to, final String from_key, final String to_key)
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
244 throws ConnectionException, ServerException {
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
245 feedAndGo(makeFromToData(from_key, to_key, from, to), 0);
9441
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
246 }
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
247
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
248 protected final Data[] makeFromToData(final String from_key, final String to_key, final double _from, final double _to) {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
249 final String fromStr = String.valueOf(_from);
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
250 final String toStr = String.valueOf(_to);
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
251 final Data dataFrom = new StringOptionsData(from_key, from_key, new DataItem[] { new DefaultDataItem(fromStr, fromStr, fromStr) });
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
252 final Data dataTo = new StringOptionsData(to_key, to_key, new DataItem[] { new DefaultDataItem(toStr, toStr, toStr) });
9441
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
253 return new Data[] { dataFrom, dataTo };
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
254 }
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
255
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
256 protected final void selectRiver() throws ConnectionException, ServerException {
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
257 final String riverStr = this.river.name();
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
258 final Data data = new StringOptionsData("river", "river", new DataItem[] { new DefaultDataItem(riverStr, riverStr, riverStr) });
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
259 feedAndGo(new Data[] { data }, 0);
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
260 }
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
261
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
262 public final void runTests() throws IOException, ServerException {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
263 for (final ModuleRunnerOutput output : this.outputList) {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
264 final String name = output.getOutputModename();
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
265 if (!stateHasRequiredOutputMode(name)) {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
266 Assert.fail("Unbekannter outputmode " + name);
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
267 }
9570
531a60b7af95 failed tests will be saved to disk
gernotbelger
parents: 9567
diff changeset
268 output.assertAndWriteToFile(this.client, this.collection.identifier(), this.testFolder);
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
269 }
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
270 }
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
271
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
272 private final boolean stateHasRequiredOutputMode(final String outputMode) throws ConnectionException, ServerException {
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
273 final OutputMode[] modes = getArtifact().getArtifactDescription().getOutputModes();
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
274 if (modes != null) {
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
275 for (final OutputMode mode : modes) {
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
276 if (mode.getName().toLowerCase().equals(outputMode))
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
277 return true;
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
278 }
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
279 }
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
280 return false;
9127
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
281 }
dbb26bc81843 Testing
gernotbelger
parents: 9031
diff changeset
282
9148
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
283 protected final String getRecommendationPairString(final SimpleRecommendation rec1, final SimpleRecommendation rec2)
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
284 throws ConnectionException, ServerException {
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
285
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
286 return rec1.getRecommendationPairString(rec2, getCollection(), this.serverUrl, this.locale);
48d87af1243e Unit testing flowdepthdevelopment added
gernotbelger
parents: 9133
diff changeset
287 }
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
288
9441
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
289 protected final void feedAndGoData(final Data[] data) throws ConnectionException, ServerException {
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
290 feedAndGo(data, 0);
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
291 }
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
292
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
293 protected final void feedAndGoSimpleTextInput(final String key, final String value) throws ConnectionException, ServerException {
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
294 feedAndGo(new Data[] { getSimpleTextInput(key, value) }, 0);
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
295 }
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
296
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
297 protected Data getSimpleTextInput(final String key, final String value) throws ConnectionException, ServerException {
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
298 return new DefaultData(key, key, key, new DataItem[] { new DefaultDataItem(value, value, value) });
9441
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
299 }
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
300
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
301 protected final Data[] addItemToExistingData(final Data[] existing, final Data add) {
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
302 final Data[] data = new Data[existing.length + 1];
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
303 for (int i = 0; i < existing.length; i++) {
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
304 data[i] = existing[i];
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
305 }
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
306 data[existing.length] = add;
e75afd693f78 Backed out changeset: e991c4cec0d0
gernotbelger
parents: 9440
diff changeset
307 return data;
9424
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
308 }
da19f1f58d72 jUnit test uinfo salix regional
gernotbelger
parents: 9422
diff changeset
309
9567
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
310 public double getTo() {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
311 return this.to;
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
312 }
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
313
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
314 public double getFrom() {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
315 return this.from;
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
316 }
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
317
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
318 public final AbstractModuleRunner addOutputTest(final FilenameSupplier filename, final String outputModeName, final String currentKm)
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
319 throws ConnectionException {
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
320 this.outputList.add(new ModuleRunnerOutput(filename, outputModeName, currentKm));
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
321 return this;
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
322 }
86e522bc7f36 jUnit-Tests completed
gernotbelger
parents: 9497
diff changeset
323
9210
de55d9a94796 Fixed: was using java 7 features in java 6 code
gernotbelger
parents: 9148
diff changeset
324 }

http://dive4elements.wald.intevation.org