| /******************************************************************************* |
| * Copyright (c) 2019 Boeing. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Boeing - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.ote.simple.test.environment.listener; |
| |
| import java.util.logging.Level; |
| |
| import org.eclipse.osee.framework.logging.BaseStatus; |
| import org.eclipse.osee.framework.logging.OseeLog; |
| import org.eclipse.osee.ote.core.IUserSession; |
| import org.eclipse.osee.ote.core.OSEEPerson1_4; |
| import org.eclipse.osee.ote.core.OTESessionManager; |
| import org.eclipse.osee.ote.core.environment.TestEnvironment; |
| import org.eclipse.osee.ote.core.environment.config.ScriptVersionConfig; |
| import org.eclipse.osee.ote.core.environment.interfaces.IScriptInitializer; |
| import org.eclipse.osee.ote.core.framework.IMethodResult; |
| import org.eclipse.osee.ote.core.framework.MethodResultImpl; |
| import org.eclipse.osee.ote.core.framework.ReturnCode; |
| import org.eclipse.osee.ote.core.framework.command.RunTestsKeys; |
| import org.eclipse.osee.ote.core.framework.event.IEventData; |
| import org.eclipse.osee.ote.core.framework.testrun.ITestRunListener; |
| import org.eclipse.osee.ote.core.log.record.ScriptConfigRecord; |
| import org.eclipse.osee.ote.core.log.record.ScriptInitRecord; |
| import org.eclipse.ote.services.core.ServiceUtility; |
| import org.eclipse.ote.simple.test.environment.SimpleTestEnvironment; |
| |
| /** |
| * @author Andrew M. Finkbeiner |
| * @author Andy Jury |
| */ |
| public class SimpleTestRunListener implements ITestRunListener { |
| |
| private final TestEnvironment env; |
| |
| private OSEEPerson1_4 validUser = new OSEEPerson1_4("ERROR", "ERROR", "ERROR"); |
| |
| public SimpleTestRunListener(TestEnvironment env) { |
| this.env = env; |
| } |
| |
| /** |
| * The contract we're assuming is that postRun will allow for messaging to |
| * still be done after the conclusion of the |
| * script running. |
| */ |
| @SuppressWarnings("deprecation") |
| @Override |
| public IMethodResult postRun(IEventData eventData) { |
| |
| eventData.getTest().endTest(); |
| eventData.getTest().processScriptcompleteListeners(); |
| |
| if (env.getScriptCtrl().isLocked()) { |
| env.getScriptCtrl().unlock(); |
| } |
| |
| return new MethodResultImpl(ReturnCode.OK); |
| } |
| |
| @Override |
| public IMethodResult postTestCase(IEventData eventData) { |
| return new MethodResultImpl(ReturnCode.OK); |
| } |
| |
| @Override |
| public IMethodResult preRun(IEventData eventData) { |
| // from TestScript |
| MethodResultImpl result = new MethodResultImpl(ReturnCode.OK); |
| env.getScriptCtrl().setScriptReady(true); |
| |
| ScriptConfigRecord scriptConfig = new ScriptConfigRecord(eventData.getTest()); |
| try { |
| OTESessionManager sessionManager = ServiceUtility.getService(OTESessionManager.class); |
| IUserSession session = sessionManager.getActiveUser(); |
| validUser = session.getUser(); |
| } catch (Exception ex) { |
| OseeLog.log(getClass(), Level.WARNING, "Failed to get the user from the client OSEE", ex); |
| } |
| scriptConfig.setExecutedBy(validUser.getName(), validUser.getEmail(), validUser.getId()); |
| ScriptVersionConfig version = new ScriptVersionConfig(eventData.getProperties().get(RunTestsKeys.version_repositoryType.name()), |
| eventData.getProperties().get(RunTestsKeys.version_location.name()), |
| eventData.getProperties().get(RunTestsKeys.version_revision.name()), |
| eventData.getProperties().get(RunTestsKeys.version_lastAuthor.name()), |
| eventData.getProperties().get(RunTestsKeys.version_lastModificationDate.name()), |
| eventData.getProperties().get(RunTestsKeys.version_modifiedFlag.name())); |
| scriptConfig.setScriptVersion(version); |
| eventData.getTest().getLogger().log(scriptConfig); |
| |
| env.getScriptCtrl().lock(); |
| |
| try { |
| eventData.getTest().getLogger().log(new ScriptInitRecord(eventData.getTest(), true)); // Outfile |
| // logging |
| IScriptInitializer initializer = eventData.getTest().getScriptInitializer(); |
| if (initializer != null) { |
| initializer.doScriptInitialProcessing(); |
| } |
| eventData.getTest().getLogger().log(new ScriptInitRecord(eventData.getTest(), false)); |
| |
| } catch (Exception ex) { |
| if (result.getReturnCode() == ReturnCode.OK) { |
| result.setReturnCode(ReturnCode.ERROR); |
| result.addStatus(new BaseStatus(SimpleTestEnvironment.class.getName(), Level.SEVERE, ex)); |
| } else { |
| result.addStatus(new BaseStatus(SimpleTestEnvironment.class.getName(), Level.SEVERE, ex)); |
| } |
| } |
| |
| return result; |
| } |
| |
| @Override |
| public IMethodResult preTestCase(IEventData eventData) { |
| return new MethodResultImpl(ReturnCode.OK); |
| } |
| |
| } |