/*
* ModeShape (http://www.modeshape.org)
*
* 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.modeshape.sequencer.wsdl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.util.Map;
import javax.jcr.Node;
import javax.wsdl.WSDLException;
import org.junit.Test;
import org.modeshape.jcr.api.observation.Event;
import org.modeshape.jcr.sequencer.AbstractSequencerTest;
/**
* Unit test for {@link WsdlSequencer} Note: this was ported from 2.x and is just a suite of smoke-tests, as the sequenced content
* isn't asserted anywhere.
*/
public class WsdlSequencerTest extends AbstractSequencerTest {
@Test
public void shouldBeAbleToSequence_loanServicePT() throws Exception {
assertSequencedSuccessfully("loanServicePT.wsdl");
}
@Test
public void shouldBeAbleToSequence_stockQuote() throws Exception {
assertSequencedSuccessfully("stockQuote.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_api_v3_portType() throws Exception {
assertSequencedSuccessfully("uddi_api_v3_portType.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_custody_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_custody_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_repl_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_repl_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_repl_v3_portType() throws Exception {
assertSequencedSuccessfully("uddi_repl_v3_portType.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_sub_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_sub_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_sub_v3_portType() throws Exception {
assertSequencedSuccessfully("uddi_sub_v3_portType.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_sbr_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_subr_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_v3_service() throws Exception {
assertSequencedSuccessfully("uddi_v3_service.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_vs_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_vs_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_vs_v3_portType() throws Exception {
assertSequencedSuccessfully("uddi_vs_v3_portType.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_vscache_v3_binding() throws Exception {
assertSequencedSuccessfully("uddi_vscache_v3_binding.wsdl");
}
@Test
public void shouldBeAbleToSequence_uddi_vscache_v3_portType() throws Exception {
assertSequencedSuccessfully("uddi_vscache_v3_portType.wsdl");
}
@Test
public void shouldFailIfWsdlInvalid() throws Throwable {
String filename = "invalid.wsdl";
createNodeWithContentFromFile(filename, filename);
Node sequencedNode = rootNode.getNode("invalid.wsdl/jcr:content");
expectSequencingFailure(sequencedNode);
Map<?, ?> eventInfo = assertSequencingEventInfo(sequencedNode,
session.getUserID(),
"WSDL sequencer",
sequencedNode.getPath(),
"/wsdl");
assertEquals(WSDLException.class.getName(), eventInfo.get(Event.Sequencing.SEQUENCING_FAILURE_CAUSE).getClass().getName());
}
private void assertSequencedSuccessfully( String filePath ) throws Exception {
Node parentNode = createNodeWithContentFromFile(filePath, filePath);
Node wsdlDocument = getOutputNode(rootNode, "wsdl/" + filePath);
assertNotNull(wsdlDocument);
assertEquals(WsdlLexicon.WSDL_DOCUMENT, wsdlDocument.getPrimaryNodeType().getName());
assertCreatedBySessionUser(wsdlDocument, session);
assertTrue(wsdlDocument.getNodes().getSize() > 0);
Node sequencedNode = parentNode.getNode("jcr:content");
assertSequencingEventInfo(sequencedNode, session.getUserID(), "WSDL sequencer", sequencedNode.getPath(), "/wsdl");
}
}