/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* 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
*******************************************************************************/
/**
*
*/
package org.ebayopensource.turmeric.eclipse.functional.test.ft.wsdlsvc;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeNoException;
import java.util.ArrayList;
import java.util.List;
import org.ebayopensource.turmeric.eclipse.functional.test.AbstractTestCase;
import org.ebayopensource.turmeric.eclipse.functional.test.SoaTestConstants;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.GlobalRepositorySystem;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.ISOARepositorySystem;
import org.ebayopensource.turmeric.eclipse.resources.ui.model.ConsumerFromJavaParamModel;
import org.ebayopensource.turmeric.eclipse.services.buildsystem.ServiceCreator;
import org.ebayopensource.turmeric.eclipse.test.util.FunctionalTestHelper;
import org.ebayopensource.turmeric.eclipse.test.util.ProjectArtifactValidator;
import org.ebayopensource.turmeric.eclipse.test.util.ProjectUtil;
import org.ebayopensource.turmeric.eclipse.test.util.SimpleTestUtil;
import org.ebayopensource.turmeric.eclipse.test.util.ZipExtractor;
import org.ebayopensource.turmeric.eclipse.test.utils.ServicesUtil;
import org.ebayopensource.turmeric.eclipse.test.utils.WsdlUtilTest;
import org.ebayopensource.turmeric.eclipse.utils.plugin.ProgressUtil;
import org.ebayopensource.turmeric.eclipse.utils.plugin.WorkspaceUtil;
import org.ebayopensource.turmeric.repositorysystem.imp.impl.TurmericRepositorySystem;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
/**
* @author shrao
*
*/
public class BlankWsdlServiceConsumerTest extends AbstractTestCase {
public static String PARENT_DIR = org.eclipse.core.runtime.Platform
.getLocation().toOSString();
static String adminName = null;
static String publicServiceName = null;
static String dataDirectory = WsdlUtilTest.getPluginOSPath(
SoaTestConstants.PLUGIN_ID,"data");
@BeforeClass
public static void setUp(){
ZipExtractor zip = new ZipExtractor();
zip.extract(dataDirectory+"/BlankWsdlServiceConsumerTest.zip",dataDirectory +"/extractedData");
}
/**
* @throws java.lang.Exception
*/
@Override
@Before
public void setUpBeforeClass() throws Exception {
SimpleTestUtil.setAutoBuilding(false);
ISOARepositorySystem repositorySystem = new TurmericRepositorySystem();
GlobalRepositorySystem.instanceOf().setActiveRepositorySystem(
repositorySystem);
publicServiceName = "Service";
adminName = ServicesUtil.getAdminName(publicServiceName);
System.out.println(" --- Service Admin Name : " + adminName);
if (WorkspaceUtil.getProject(adminName + "Consumer").exists())
ProjectUtil.cleanUpProjects(WorkspaceUtil.getProject(adminName
+ "Consumer"));
// ServiceSetupCleanupValidate.cleanupWSConsumer(ServiceName);
ServiceSetupCleanupValidate.cleanup(adminName);
ServiceSetupCleanupValidate.cleanupConsumer(adminName);
FunctionalTestHelper.ensureM2EcipseBeingInited();
String admin = adminName;
String publicService = publicServiceName;
try {
boolean result = ServiceFromBlankWsdlTest
.createServiceFromBlankWsdl(admin, publicService);
assertTrue(result);
SimpleTestUtil.setAutoBuilding(true);
} catch (NoClassDefFoundError ex) {
assumeNoException(ex);
}
// SimpleTestUtil.setAutoBuilding(true);
}
@Test
@Ignore("Fails after refactoring")
public void testConsumeCalculatorSvc() throws Exception {
// Turn on the auto-build for the builders to kick-in
try {
String consumerId = "CalcConsumer_Id";
List<String> environment = new ArrayList<String>();
environment.add("production");
ConsumerFromJavaParamModel model = new ConsumerFromJavaParamModel();
model.setBaseConsumerSrcDir("src");
model.setClientName(adminName + "Consumer");
ArrayList<String> list = new ArrayList<String>();
list.add(adminName);
model.setServiceNames(list);
model.setParentDirectory(PARENT_DIR);
model.setConsumerId(consumerId);
model.setEnvironments(environment);
model.setConvertingJavaProject(true);
SimpleTestUtil.setAutoBuilding(false);
Thread.sleep(5000);
ServiceCreator.createConsumerFromJava(model,
ProgressUtil.getDefaultMonitor(null));
Thread.sleep(5000);
SimpleTestUtil.setAutoBuilding(true);
// Add validation for the expected artifacts and contents..
// we know that the CC.xml or GCC.xml is the last artifact to be
// created
// The project exists as
IProject consProject = WorkspaceUtil.getProject(model
.getClientName());
consProject.build(IncrementalProjectBuilder.FULL_BUILD,
ProgressUtil.getDefaultMonitor(null));
boolean consMatch = ServiceSetupCleanupValidate
.validateConsumerArtifacts(
WorkspaceUtil.getProject(adminName + "Consumer"),
adminName + "Consumer");
String failMessages = ProjectArtifactValidator
.getErroredFileMessage().toString();
ServiceSetupCleanupValidate.validateMatch = true;
ProjectArtifactValidator.getErroredFileMessage().setLength(0);
System.out.println(failMessages);
assertTrue(" --- Service Consumer validation failed "
+ failMessages.toString(), consMatch);
} catch (NoClassDefFoundError ex) {
assumeNoException(ex);
}
/*
* FunctionalTestHelper.consumeJunitModifiedTestSvcBeforeMod(
* ServiceName, consProject);
*
* FunctionalTestHelper.modifyClientPrjServicePP(consProject,
* ServiceName, SOAProjectConstants.MessageProtocol.SOAP11.toString());
*
* FunctionalTestHelper.invokeConsumer(consProject);
*
* FunctionalTestHelper.modifyClientPrjServicePP(consProject,
* ServiceName, SOAProjectConstants.MessageProtocol.NONE.toString());
*
* FunctionalTestHelper.modifyClientPrjRespDataBinding(consProject ,
* ServiceName, SOAProjectConstants.DataBinding.JSON.toString());
*
* FunctionalTestHelper.invokeConsumer(consProject);
*/
}
@AfterClass
public static void deInit(){
ensureClean(dataDirectory +"/extractedData");
}
}