blob: bc691a594fa82810e6c0a6f4575e2b9fd85af4ea [file] [log] [blame]
/*
*******************************************************************************
* Copyright (c) 2018 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************
*/
package org.eclipse.openk.core.controller;
import junit.framework.TestCase;
import org.apache.http.HttpStatus;
import org.easymock.EasyMock;
import org.eclipse.openk.PlannedGridMeasuresConfiguration.EmailConfiguration;
import org.eclipse.openk.TestUtils.TestHelper;
import org.eclipse.openk.api.*;
import org.eclipse.openk.api.mail.EmailTemplatePaths;
import org.eclipse.openk.core.bpmn.base.ProcessException;
import org.eclipse.openk.core.bpmn.base.ProcessGrid;
import org.eclipse.openk.core.bpmn.base.ProcessGrid.Recoverable;
import org.eclipse.openk.core.bpmn.gridmeasure.PlgmGrid;
import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
import org.eclipse.openk.core.exceptions.HttpStatusException;
import org.eclipse.openk.db.dao.*;
import org.eclipse.openk.db.model.*;
import org.eclipse.openk.resources.PlannedGridMeasuresResource;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.powermock.api.easymock.PowerMock;
import org.powermock.reflect.Whitebox;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertNull;
import static junit.framework.TestCase.assertTrue;
import static org.easymock.EasyMock.anyInt;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.anyString;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
public class GridMeasureBackendControllerTest {
public GridMeasureBackendController beMockGridMeasure;
private TestableGridMeasureBackendController tbc;
private String jwtString = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiJkOWIwZTk3OS1jMmYwLTQzYmYtYjM5Mi03ZTNiM2ZiNTZjNTUiLCJleHAiOjE1MjgxNzg4ODUsIm5iZiI6MCwiaWF0IjoxNTI4MTc4NTg1LCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzZDA0YTAyZC01NGZkLTRkNTAtOGNmYS0wYzVjNGFmYTJkNDMiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJwbGFubmVkLXBvbGljaWVzLWFjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwicGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyIiwicGxhbm5lZC1wb2xpY2llcy1tZWFzdXJlYXBwbGljYW50Il19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwibmFtZSI6Ik90dG8gTWHDn25haG1lbi1BbnRyYWdzc3RlbGxlciIsInByZWZlcnJlZF91c2VybmFtZSI6Im90dG8iLCJnaXZlbl9uYW1lIjoiT3R0byIsImZhbWlseV9uYW1lIjoiTWHDn25haG1lbi1BbnRyYWdzc3RlbGxlciJ9.OQjxr18u3E0Eyzkaep32JAKhv1-sV-QLkBs4I7u5_Gf1rI2QIGqrp266mj_kVBVG0-hjNCOo1oaehh3PnrKEC4RDY6g39RDDlk2fh-WQw5IcasSSVyUuKLmSoePTzBrbEzaJWJC7ZjtO0I96kEbqBSHMWAa9bAcl4lqHjvBup1atACblJKAFbBltC_8BkKeNEVEkAY5r59EqSFh6Wzncuhqw8h7MDmFiHfhsNsvhlUJ1QiJ43qYoVMF6RSpbx4TVCdIyXDHhTmWXz5lyRt_YiHc4A4Ca9lx34FXCohswxwqtvisYiAp7AiIoMamHhZTXxTbPzOoCCMmihxNdiPK5wQ";
@Before
public void prepareTests() throws Exception {
TestHelper.initDefaultBackendConfig();
// mock email-configuration
EmailConfiguration emailConfiguration = new EmailConfiguration();
emailConfiguration.setPort("25");
emailConfiguration.setSmtpHost("localhostTest");
BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
EmailTemplatePaths templatePaths = new EmailTemplatePaths();
templatePaths.setAppliedEmailTemplate("appliedEmailPathToEmailTxt");
BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
beMockGridMeasure = PowerMock.createNiceMock(GridMeasureBackendController.class);
tbc = new TestableGridMeasureBackendController();
tbc.tblMeasureDocumentsDao = createTblMeasureDocumentsDao("noError");
tbc.tblDocumentsDao = createTblDocumentsDao("noError", "fileNameExample.txt");
}
private class TestableGridMeasureBackendController extends GridMeasureBackendController {
public TblGridMeasureDao tblGridMeasureDao;
public TblSingleGridmeasureDao tblSingleGridmeasureDao;
public TblStepsDao tblStepsDao;
public TblMeasureDocumentsDao tblMeasureDocumentsDao;
public TblDocumentsDao tblDocumentsDao;
public TblLockDao tblLockDao;
public HTblGridMeasureDao htblGridMeasureDao;
public MailAddressCache mailAddressCache;
@Override
protected AutoCloseEntityManager createEm() {
EntityManager em = getMockedEntityManager();
return new AutoCloseEntityManager(em);
}
@Override
protected TblGridMeasureDao createTblGridMeasureDao( EntityManager em ) {
if( tblGridMeasureDao != null ) {
return tblGridMeasureDao;
}
else {
return super.createTblGridMeasureDao(em);
}
}
@Override
protected TblSingleGridmeasureDao createTblSingleGridmeasureDao( EntityManager em ) {
if( tblSingleGridmeasureDao != null ) {
return tblSingleGridmeasureDao;
}
else {
return super.createTblSingleGridmeasureDao(em);
}
}
@Override
protected TblStepsDao createTblStepsDao( EntityManager em ) {
if( tblStepsDao != null ) {
return tblStepsDao;
}
else {
return super.createTblStepsDao(em);
}
}
@Override
protected HTblGridMeasureDao createHistoricalTblGridMeasureDao( EntityManager em ) {
if( htblGridMeasureDao != null ) {
return htblGridMeasureDao;
}
else {
return super.createHistoricalTblGridMeasureDao(em);
}
}
@Override
protected TblMeasureDocumentsDao createTblMeasureDocumentsDao( EntityManager em ) {
if( tblMeasureDocumentsDao != null ) {
return tblMeasureDocumentsDao;
}
else {
return super.createTblMeasureDocumentsDao(em);
}
}
@Override
protected TblDocumentsDao createTblDocumentsDao ( EntityManager em ) {
if( tblDocumentsDao != null ) {
return tblDocumentsDao;
}
else {
return super.createTblDocumentsDao(em);
}
}
@Override
protected TblLockDao createTblLockDao(EntityManager em) {
if( tblLockDao != null ) {
return tblLockDao;
}
else {
return super.createTblLockDao(em);
}
}
}
private EntityManager getMockedEntityManager() {
EntityTransaction et = EasyMock.createMock(EntityTransaction.class);
et.begin();
expectLastCall().andVoid().anyTimes();
et.commit();
expectLastCall().andVoid().anyTimes();
et.rollback();
expectLastCall().andVoid().anyTimes();
EasyMock.replay(et);
EasyMock.verify(et);
EntityManager em = EasyMock.createMock(EntityManager.class);
expect(em.getTransaction()).andReturn(et).anyTimes();
expect(em.isOpen()).andReturn(false).anyTimes();
em.close();
expectLastCall().andVoid().anyTimes();
EasyMock.replay(em);
EasyMock.verify(em);
return em;
}
private String payloadNormalUser = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiIwZGUyNTMyYi1mNTBkLTQxZTUtODQwYy1iNzZkOTYyZGM3MDYiLCJleHAiOjE1MjE2NDA0MTIsIm5iZiI6MCwiaWF0IjoxNTIxNjQwMTEyLCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiJkOTE1MjY2MS03NTJlLTRiNmMtOWRiNi0wYjFmYzY3YTc4ZTciLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJ1bWFfYXV0aG9yaXphdGlvbiIsInBsYW5uZWQtcG9saWNpZXMtbm9ybWFsdXNlciJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInJvbGVzIjoiW3BsYW5uZWQtcG9saWNpZXMtbm9ybWFsdXNlciwgb2ZmbGluZV9hY2Nlc3MsIHVtYV9hdXRob3JpemF0aW9uLCBlbG9nYm9vay1hY2Nlc3MsIGVsb2dib29rLW5vcm1hbHVzZXJdIiwibmFtZSI6Ik90dG8gTm9ybWFsdmVyYnJhdWNoZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJvdHRvIiwiZ2l2ZW5fbmFtZSI6Ik90dG8iLCJmYW1pbHlfbmFtZSI6Ik5vcm1hbHZlcmJyYXVjaGVyIn0.F-CcNatXaE0W4PhBNaSGUwddE_S05HqL6QuJLOWQo_n0_LdWGRw8iyF6RIbK8y06kH3gb79c6t1U0njWqE68pL9FQfP2t-_en-XlCwKzBdDXtq8e8xHyZ00P5zlE80du0A74qzh2g0HrE9fCgEaawk2_M6JxNFrToiwl6PGRS9RNRD_xgKVXn0XqG-I_qRKA-GdBTcLPjPD9bn4fAdlf3HWdVPUNclRI2ttUykFmpmRTAHKwI3cZOBrIMn4dasMn9k1xPP5IAGtCcgs6TF0YlnWvZgIhdT_5O4rmMtzZXjeuYsjpNnqz0LGA0GT6up90PZrTJF8rHtWU50wVgJSH9g";
private RefVersionDao createRefVersionDao(String dBversion ) {
RefVersion rv = new RefVersion();
if( dBversion != null ) {
rv.setVersion(dBversion);
}
else {
rv = null;
}
RefVersionDao dao = EasyMock.createMock(RefVersionDao.class);
expect( dao.getVersionInTx() ).andReturn(rv).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private TblGridMeasureDao createTblGridMeasureDao() {
java.util.List<TblGridMeasure> mList = new ArrayList<TblGridMeasure>();
Calendar gCal = new GregorianCalendar();
gCal.add( Calendar.DAY_OF_MONTH, 1 );
Date tomorrow = gCal.getTime();
Calendar gCal2 = new GregorianCalendar();
gCal2.add( Calendar.MONTH, 1 );
Date nextMonth = gCal2.getTime();
Calendar gCal3 = new GregorianCalendar();
gCal3.add(Calendar.DATE, -1);
Date yesterday = gCal3.getTime();
TblGridMeasure mGm1 = new TblGridMeasure();
mGm1.setId(1);
mGm1.setIdDescriptive("20");
mGm1.setTitle("Title1");
mGm1.setFkRefGmStatus(0);
mGm1.setPlannedStarttimeFirstSinglemeasure(tomorrow);
//mGm1.setEmailAddresses("testuser1@test.com");
mList.add(mGm1);
TblGridMeasure mGm2 = new TblGridMeasure();
mGm2.setId(2);
mGm2.setIdDescriptive("21");
mGm2.setTitle("Title2");
mGm2.setFkRefGmStatus(1);
mGm2.setPlannedStarttimeFirstSinglemeasure(nextMonth);
mList.add(mGm2);
TblGridMeasure mGm3 = new TblGridMeasure();
mGm3.setId(3);
mGm3.setIdDescriptive("22");
mGm3.setTitle("Title3");
mGm3.setFkRefGmStatus(0);
mGm3.setPlannedStarttimeFirstSinglemeasure(yesterday);
mList.add(mGm3);
TblGridMeasure mGm4 = new TblGridMeasure();
mGm4.setId(4);
mGm4.setIdDescriptive("222");
mGm4.setTitle("Title22");
mGm4.setFkRefGmStatus(2); // canceled
mGm4.setPlannedStarttimeFirstSinglemeasure(yesterday);
mList.add(mGm4);
TblGridMeasure mGm5 = new TblGridMeasure();
mGm5.setId(5);
mGm5.setIdDescriptive("221");
mGm5.setTitle("Title11");
mGm5.setFkRefGmStatus(11); //closed
mGm5.setPlannedStarttimeFirstSinglemeasure(yesterday);
mList.add(mGm5);
List<String> mailAddressesList = new ArrayList<>();
mailAddressesList.add("testuser1@test.com, testuser2@test.com");
mailAddressesList.add("testuser2@test.com, testuser3@test.com");
mailAddressesList.add("testuser3@test.com, testuser4@test.com");
List<String> userDepartmentsCreatedList = new ArrayList<>();
userDepartmentsCreatedList.add("Department abc");
userDepartmentsCreatedList.add("Department def");
userDepartmentsCreatedList.add("Department ghi");
List<String> userDepartmentsModifiedList = new ArrayList<>();
userDepartmentsModifiedList.add("Department jkl");
userDepartmentsModifiedList.add("Department mno");
userDepartmentsModifiedList.add("Department pqr");
TblGridMeasureDao dao = EasyMock.createMock(TblGridMeasureDao.class);
expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.findById(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.getGridMeasuresInTx()).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresByStatusId(anyInt())).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresExcludingStatusInTx(anyInt())).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresExcludingStatusInTx(anyInt(), anyInt())).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresByUserName(anyString())).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresByUserNameExcludingStatus(anyString(),anyInt())).andReturn(mList).anyTimes();
expect(dao.getGridMeasuresByUserNameExcludingStatus(anyString(),anyInt(), anyInt())).andReturn(mList).anyTimes();
expect(dao.getMailAddressesFromGridmeasures()).andReturn(mailAddressesList).anyTimes();
expect(dao.getUserDepartmentsCreated()).andReturn(userDepartmentsCreatedList).anyTimes();
expect(dao.getUserDepartmentsModified()).andReturn(userDepartmentsModifiedList).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private TblGridMeasureDao createTblGridMeasureDaoStatus() {
java.util.List<TblGridMeasure> mList = new ArrayList<TblGridMeasure>();
TblGridMeasure mGm1 = new TblGridMeasure();
mGm1.setId(1);
mGm1.setIdDescriptive("20");
mGm1.setTitle("Title1");
mGm1.setFkRefGmStatus(3);
mList.add(mGm1);
TblGridMeasureDao dao = EasyMock.createMock(TblGridMeasureDao.class);
expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.findById(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.getGridMeasuresInTx()).andReturn(mList).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private TblStepsDao createTblStepsDao() {
java.util.List<TblSteps> stepList = new ArrayList<TblSteps>();
TblSteps step1 = new TblSteps();
step1.setId(1);
step1.setTargetState("target");
step1.setSwitchingObject("tool");
step1.setSortorder(1);
stepList.add(step1);
TblSteps step2 = new TblSteps();
step2.setId(2);
step2.setTargetState("target 2");
step2.setSwitchingObject("tool 2");
step2.setSortorder(2);
stepList.add(step2);
TblStepsDao dao = EasyMock.createMock(TblStepsDao.class);
expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(stepList.get(0)).anyTimes();
expect( dao.findById(anyObject(), anyInt())).andReturn(stepList.get(0)).anyTimes();
expect( dao.getStepsBySingleGmIdInTx(1)).andReturn(stepList).anyTimes();
expect( dao.getStepsInTx()).andReturn(stepList).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private TblSingleGridmeasureDao createTblSingleGridmeasureDao() {
java.util.List<TblSingleGridmeasure> mList = new ArrayList<TblSingleGridmeasure>();
TblSingleGridmeasure mSgm1 = new TblSingleGridmeasure();
mSgm1.setId(1);
mSgm1.setTitle("Title1");
mSgm1.setSortorder(1);
mSgm1.setCimId("2");
mList.add(mSgm1);
List<String> userDepartments = new ArrayList<String>();
userDepartments.add("Truppe1");
userDepartments.add("Truppe2");
userDepartments.add("Truppe3");
List<String> networkControls = new ArrayList<String>();
networkControls.add("Heinz XY");
networkControls.add("Manne ZZ");
networkControls.add("Heidi AB");
TblSingleGridmeasureDao dao = EasyMock.createMock(TblSingleGridmeasureDao.class);
expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.findById(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
expect( dao.getSingleGridmeasuresByGmIdInTx(anyInt())).andReturn(mList).anyTimes();
expect( dao.getSingleGridmeasuresInTx()).andReturn(mList).anyTimes();
expect( dao.getUserDepartmentsResponsibleOnSite()).andReturn(userDepartments).anyTimes();
expect( dao.getNetworkControls()).andReturn(userDepartments).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private HTblGridMeasureDao createHistoricalTblGridMeasureDao() {
java.util.List<HTblGridMeasure> mList = new ArrayList<HTblGridMeasure>();
Calendar gCal = new GregorianCalendar();
gCal.add( Calendar.DAY_OF_MONTH, 1 );
Date tomorrow = gCal.getTime();
Calendar gCal2 = new GregorianCalendar();
gCal2.add( Calendar.MONTH, 1 );
Date nextMonth = gCal2.getTime();
Calendar gCal3 = new GregorianCalendar();
gCal3.add(Calendar.DATE, -1);
Date yesterday = gCal2.getTime();
HTblGridMeasure mGm1 = new HTblGridMeasure();
mGm1.setId(1);
mGm1.setIdDescriptive("20");
mGm1.setTitle("Title1");
mGm1.setFkRefGmStatus(0);
mGm1.setPlannedStarttimeFirstSinglemeasure(tomorrow);
mList.add(mGm1);
HTblGridMeasure mGm2 = new HTblGridMeasure();
mGm2.setId(2);
mGm2.setIdDescriptive("21");
mGm2.setTitle("Title2");
mGm2.setFkRefGmStatus(1);
mGm2.setPlannedStarttimeFirstSinglemeasure(nextMonth);
mList.add(mGm2);
HTblGridMeasure mGm3 = new HTblGridMeasure();
mGm3.setId(3);
mGm3.setIdDescriptive("22");
mGm3.setTitle("Title3");
mGm3.setFkRefGmStatus(3);
mGm3.setPlannedStarttimeFirstSinglemeasure(yesterday);
mList.add(mGm3);
HTblGridMeasureDao dao = EasyMock.createMock(HTblGridMeasureDao.class);
expect( dao.getHistoricalGridMeasuresByIdInTx(anyInt())).andReturn(mList).anyTimes();
replay( dao );
verify( dao );
return dao;
}
private TblMeasureDocumentsDao createTblMeasureDocumentsDao(String error) throws Exception {
TblMeasureDocumentsDao dao = getTblMeasureDocumentsDaoMockBasic();
java.util.List<TblMeasureDocuments> allTblMeasureDocumentsByIdList = new ArrayList<>();
java.util.List<TblMeasureDocuments> measureDocumentByDocumentIdList = new ArrayList<>();
//TblDocuments
TblDocuments tblDocuments1 = new TblDocuments();
tblDocuments1.setId(1);
tblDocuments1.setDocumentName("test.xls");
TblDocuments tblDocuments2 = new TblDocuments();
tblDocuments2.setId(2);
tblDocuments2.setDocumentName("uploadTestFile.txt");
TblDocuments tblDocuments3 = new TblDocuments();
tblDocuments3.setId(3);
tblDocuments3.setDocumentName("test.png");
//TblMeasureDocuments
TblMeasureDocuments mD1 = new TblMeasureDocuments();
mD1.setId(1);
mD1.setTblDocuments(tblDocuments1);
mD1.setFkTblMeasure(1);
TblMeasureDocuments mD2 = new TblMeasureDocuments();
mD2.setId(2);
mD2.setTblDocuments(tblDocuments2);
mD2.setFkTblMeasure(1);
TblMeasureDocuments mD3 = new TblMeasureDocuments();
mD3.setId(3);
mD3.setTblDocuments(tblDocuments3);
mD3.setFkTblMeasure(2);
//List
allTblMeasureDocumentsByIdList.add(mD1);
allTblMeasureDocumentsByIdList.add(mD2);
allTblMeasureDocumentsByIdList.add(mD3);
//List
measureDocumentByDocumentIdList.add(mD1);
switch (error){
case "getMeasureDocumentByDocumentIdErrorHttp":
expect( dao.getMeasureDocumentByDocumentId(anyInt())).andThrow(new HttpStatusException(HttpStatus.SC_INTERNAL_SERVER_ERROR)).anyTimes();
break;
case "getMeasureDocumentByDocumentIdError":
expect( dao.getMeasureDocumentByDocumentId(anyInt())).andReturn(measureDocumentByDocumentIdList).anyTimes();
expect( dao.mergeInTx(anyObject())).andThrow(new Exception("MockedException")).anyTimes();
break;
case "getAllTblMeasureDocumentsByIdError":
expect( dao.getAllTblMeasureDocumentsById(anyInt())).andThrow(new HttpStatusException(HttpStatus.SC_INTERNAL_SERVER_ERROR)).anyTimes();
break;
case "storeInTxError":
expect( dao.storeInTx(anyObject(TblMeasureDocuments.class))).andThrow(new Exception("MockedException")).anyTimes();
break;
default:
expect( dao.getAllTblMeasureDocumentsById(anyInt())).andReturn(allTblMeasureDocumentsByIdList).anyTimes();
expect( dao.getMeasureDocumentByDocumentId(anyInt())).andReturn(measureDocumentByDocumentIdList).anyTimes();
expect( dao.storeInTx(anyObject(TblMeasureDocuments.class))).andReturn(mD1).anyTimes();
}
replay( dao );
verify( dao );
return dao;
}
private TblMeasureDocumentsDao getTblMeasureDocumentsDaoMockBasic() {
TblMeasureDocumentsDao dao = EasyMock.createNiceMock(TblMeasureDocumentsDao.class);
expect( dao.getEM()).andReturn(getMockedEntityManager()).anyTimes();
return dao;
}
private TblDocumentsDao createTblDocumentsDao(String error, String fileName) throws Exception {
TblDocumentsDao dao = getTblDocumentsDaoMockBasic();
TblDocuments tblDocuments1 = new TblDocuments();
tblDocuments1.setId(1);
tblDocuments1.setDocumentName(fileName);
tblDocuments1.setModUser("modUser");
tblDocuments1.setCreateUser("createUser");
switch (error){
case "storeInTxError":
expect( dao.storeInTx(anyObject(TblDocuments.class))).andThrow(new Exception("MockedException")).anyTimes();
break;
default:
expect( dao.storeInTx(anyObject(TblDocuments.class))).andReturn(tblDocuments1).anyTimes();
expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(tblDocuments1).anyTimes();
}
replay( dao );
verify( dao );
return dao;
}
private TblDocumentsDao getTblDocumentsDaoMockBasic() {
TblDocumentsDao dao = EasyMock.createNiceMock(TblDocumentsDao.class);
expect( dao.getEM()).andReturn(getMockedEntityManager()).anyTimes();
return dao;
}
private TblLockDao createTblLockDaoBasic() throws HttpStatusException{
TblLockDao mockedDao = EasyMock.createNiceMock(TblLockDao.class);
expect( mockedDao.getEM()).andReturn(getMockedEntityManager()).anyTimes();
return mockedDao;
}
private TblLockDao createTblLockDao() throws Exception{
TblLockDao mockedDao = createTblLockDaoBasic();
TblLock mLock = new TblLock();
mLock.setId(1);
mLock.setKey(2);
mLock.setUsername("Testuser");
mLock.setInfo("GridMeasure");
expect( mockedDao.getLock(2, "GridMeasure")).andReturn(mLock).anyTimes();
expect( mockedDao.storeInTx(anyObject(TblLock.class))).andReturn(mLock).anyTimes();
replay( mockedDao );
verify( mockedDao );
return mockedDao;
}
private TblLockDao createTblLockDao_null() throws HttpStatusException{
TblLockDao mockedDao = createTblLockDaoBasic();
expect( mockedDao.getLock(anyInt(), anyString())).andReturn(null).anyTimes();
replay( mockedDao );
verify( mockedDao );
return mockedDao;
}
private TblLockDao createTblLockDao_locked() throws HttpStatusException{
TblLockDao mockedDao = createTblLockDaoBasic();
TblLock mLock = new TblLock();
mLock.setId(1);
mLock.setKey(2);
mLock.setUsername("ModUser");
mLock.setInfo("Gridmeasure");
expect( mockedDao.getLock(2, "Gridmeasure")).andReturn(mLock).anyTimes();
//expect( mockedDao.storeInTx(anyObject(TblLock.class))).andReturn(mLock).anyTimes();
replay( mockedDao );
verify( mockedDao );
return mockedDao;
}
@Test
public void testGetVersionInfoImpl_ok() throws Exception {
GridMeasureBackendController be = new GridMeasureBackendController();
RefVersionDao dao = createRefVersionDao( "DB2" );
VersionInfo vi = (VersionInfo)Whitebox.invokeMethod(be, "getVersionInfoImpl", dao, "BEVersion1");
assertEquals(vi.getDbVersion(), "DB2");
assertEquals(vi.getBackendVersion(), "BEVersion1");
}
@Test
public void testGetVersionInfoImpl_dbnull() throws Exception {
GridMeasureBackendController be = new GridMeasureBackendController();
RefVersionDao dao = createRefVersionDao( null );
VersionInfo vi = (VersionInfo)Whitebox.invokeMethod(be, "getVersionInfoImpl", dao, "BEVersion1");
assertEquals(vi.getDbVersion(), "NO_DB");
assertEquals(vi.getBackendVersion(), "BEVersion1");
}
@Test( expected = HttpStatusException.class )
public void testGetGridMeasureAttachments_exception() throws Exception {
tbc.tblMeasureDocumentsDao = createTblMeasureDocumentsDao("getAllTblMeasureDocumentsByIdError");
tbc.getGridMeasureAttachments(1);
}
@Test
public void testGetGridMeasureAttachments() throws Exception {
TblMeasureDocumentsDao dao = createTblMeasureDocumentsDao("noError");
tbc.tblMeasureDocumentsDao = dao;
List<Document> gridMeasureAttachments = tbc.getGridMeasureAttachments(1);
List<TblMeasureDocuments> measureDocuments = dao.getAllTblMeasureDocumentsById(1);
assertEquals(gridMeasureAttachments.size(), measureDocuments.size());
assertEquals(gridMeasureAttachments.get(0).getId(), new Integer(1));
assertEquals(gridMeasureAttachments.get(0).getDocumentName(), "test.xls");
}
@Test( expected = HttpStatusException.class )
public void testDeleteDocumentsError() throws Exception {
prepareDeleteDocumentsTestError("getMeasureDocumentByDocumentIdError");
tbc.deleteDocument("moduser", 1);
}
@Test(expected = HttpStatusException.class)
public void testDeleteDocumentsErrorHttp() throws Exception {
prepareDeleteDocumentsTestError("getMeasureDocumentByDocumentIdErrorHttp");
tbc.deleteDocument("moduser", 1);
}
@Test
public void testDeleteDocuments() throws Exception {
int deletedDocumentId = tbc.deleteDocument("moduser", 1);
assertEquals(deletedDocumentId, 1);
}
@Test
public void testDownloadDocument() throws Exception {
TblDocuments downloadDocument = tbc.downloadGridMeasureAttachment(1);
assertEquals(downloadDocument.getId(),new Integer(1));
assertEquals(downloadDocument.getDocumentName(),"fileNameExample.txt");
}
@Test( expected = HttpStatusException.class )
public void testUploadDocuments_error() throws Exception {
String uploadDocumentName = "uploadTestFile2.txt";
prepareUploadDocumentsTestError(uploadDocumentName);
int gridmeasuereId = 1;
Document documentToUpload = new Document();
documentToUpload.setDocumentName(uploadDocumentName);
documentToUpload.setData("TestContent");
tbc.uploadDocument(documentToUpload, "moduser", gridmeasuereId);
}
@Test
public void testUploadDocumentsNewFile() throws Exception {
String uploadDocumentName = "uploadTestFile2.txt";
prepareUploadDocumentsTest(uploadDocumentName);
int gridmeasuereId = 1;
Document documentToUpload = new Document();
documentToUpload.setDocumentName(uploadDocumentName);
documentToUpload.setData("TestContent");
Document document = tbc.uploadDocument(documentToUpload, "moduser", gridmeasuereId);
assertNull(document.getId());
assertEquals(document.getDocumentName(), uploadDocumentName);
}
@Test
public void testUploadDocumentsUpdateFile() throws Exception {
String uploadDocumentName = "uploadTestFile.txt";
prepareUploadDocumentsTest(uploadDocumentName);
int gridmeasuereId = 1;
Document documentToUpload = new Document();
documentToUpload.setDocumentName(uploadDocumentName);
documentToUpload.setData("TestContent");
Document document = tbc.uploadDocument(documentToUpload, "moduser", gridmeasuereId);
assertEquals(document.getId(), new Integer(2));
assertEquals(document.getDocumentName(), uploadDocumentName);
}
private InputStream getUploadTestFileInStream() {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
return classLoader.getResourceAsStream("uploadTestFile.txt");
}
private void prepareDeleteDocumentsTestError(String error) throws Exception {
tbc.tblMeasureDocumentsDao = createTblMeasureDocumentsDao(error);
}
private void prepareUploadDocumentsTest(String uploadFileName) throws Exception {
// BackendConfig.configure("portalBaseUrlMock", null);
BackendConfig.getInstance().processAndSetWhiteListDocumenttypes("txt,pdf");
tbc.tblDocumentsDao = createTblDocumentsDao("noError", uploadFileName);
}
private void prepareUploadDocumentsTestError(String uploadFileName) throws Exception {
// BackendConfig.configure("portalBaseUrlMock", null);
tbc.tblDocumentsDao = createTblDocumentsDao("storeInTxError", uploadFileName);
}
@Test
public void testGetHistoricalStatusChangesById() throws Exception {
HTblGridMeasureDao dao = createHistoricalTblGridMeasureDao();
tbc.htblGridMeasureDao = dao;
List<HGridMeasure> hgridMeasure = tbc.getHistoricalStatusChangesById(1);
List<HTblGridMeasure> orgHgridMeasure = dao.getHistoricalGridMeasuresByIdInTx(1);
assertEquals(hgridMeasure.get(0).getId(), orgHgridMeasure.get(0).getId());
assertEquals(hgridMeasure.get(0).getTitle(), orgHgridMeasure.get(0).getTitle());
assertEquals(hgridMeasure.get(0).getDescription(), orgHgridMeasure.get(0).getDescription());
}
@Test
public void testGetGridMeasures() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(false);
filterObject.setCanceledStatusActive(false);
filterObject.setClosedStatusActive(false);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresInTx();
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
assertEquals(orgList.get(1).getAffectedResource(), retList.get(1).getAffectedResource());
assertEquals(orgList.get(0).getTitle(), retList.get(0).getTitle());
}
@Test
public void testGetGridMeasuresWithFilter() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(false);
filterObject.setCanceledStatusActive(true);
filterObject.setClosedStatusActive(true);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresInTx();
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
assertEquals(orgList.get(1).getAffectedResource(), retList.get(1).getAffectedResource());
assertEquals(orgList.get(0).getTitle(), retList.get(0).getTitle());
}
@Test
public void testGetGridMeasuresWithFilterWithoutClosed() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(false);
filterObject.setCanceledStatusActive(true);
filterObject.setClosedStatusActive(false);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo",filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue());
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresWithFilterWithoutCanceled() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(false);
filterObject.setCanceledStatusActive(false);
filterObject.setClosedStatusActive(true);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue());
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresWithFilterWithoutCanceledAndClosed() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(false);
filterObject.setCanceledStatusActive(false);
filterObject.setClosedStatusActive(false);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue(), PlgmProcessState.CLOSED.getStatusValue());
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresOnlyUsersGMs() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(true);
filterObject.setCanceledStatusActive(true);
filterObject.setClosedStatusActive(true);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresOnlyUsersGMsWithoutClosed() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(true);
filterObject.setCanceledStatusActive(true);
filterObject.setClosedStatusActive(false);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresOnlyUsersGMsWithoutCanceled() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(true);
filterObject.setCanceledStatusActive(false);
filterObject.setClosedStatusActive(true);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasuresOnlyUsersGMsWithoutCanceledAndClosed() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
tbc.tblGridMeasureDao = dao;
FilterObject filterObject = new FilterObject();
filterObject.setOnlyUsersGMsDesired(true);
filterObject.setCanceledStatusActive(false);
filterObject.setClosedStatusActive(false);
List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
assertEquals(orgList.size(), retList.size());
assertEquals(orgList.get(2).getId(), retList.get(2).getId());
}
@Test
public void testGetGridMeasureById() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao();
TblStepsDao stpdao = createTblStepsDao();
tbc.tblGridMeasureDao = dao;
tbc.tblSingleGridmeasureDao = sgmDao;
tbc.tblStepsDao = stpdao;
GridMeasure gridMeasure = tbc.getGridMeasureById(1);
TblGridMeasure gridMeasureCompare = dao.findByIdInTx(TblGridMeasure.class, 1);
assertEquals(gridMeasure.getId(), gridMeasureCompare.getId());
assertEquals(gridMeasure.getTitle(), gridMeasureCompare.getTitle());
assertEquals(gridMeasure.getDescription(), gridMeasureCompare.getDescription());
}
@Test
public void testStoreGridMeasure() throws Exception {
GridMeasureBackendController be = new GridMeasureBackendController();
TblGridMeasure mGm = new TblGridMeasure();
mGm.setId(1);
mGm.setIdDescriptive("20");
mGm.setTitle("Title");
TblGridMeasureDao daoMock = PowerMock.createNiceMock(TblGridMeasureDao.class);
expect(daoMock.storeInTx(mGm)).andReturn(mGm);
}
@Test
public void testGetAffectedResourcesDistinct() throws Exception {
TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
List<String> sList = new ArrayList<>(2);
sList.add("Bruno");
sList.add("Haferkamp");
TblGridMeasureDao daoMock = PowerMock.createNiceMock(TblGridMeasureDao.class);
expect(daoMock.getAffectedResourcesDistinct(PlgmProcessState.CANCELED.getStatusValue())).andReturn(sList);
replay(daoMock);
be.tblGridMeasureDao = daoMock;
assertEquals( be.getAffectedResourcesDistinct().size(), 2 );
}
@Test
public void testInvokeGetVersionInfo() {
PlannedGridMeasuresResource plgmResources = new PlannedGridMeasuresResource();
plgmResources.getVersionInfo();
assertEquals(plgmResources.invokeRunnable(null, BaseWebService.SecureType.NONE, modusr -> new GridMeasureBackendController().getVersionInfo("version")).getStatus(), HttpStatus.SC_OK);
}
@Test
public void testStoreGridMeasure_ok() throws ProcessException, HttpStatusException, Exception {
GridMeasure gm = new GridMeasure();
gm.setId(1);
gm.setStatusId(0);
PlgmProcessSubject sub = PlgmProcessSubject.fromGridMeasure(gm, "modUser");
Recoverable<PlgmProcessSubject> mockedRecov
= EasyMock.createMock(Recoverable.class);
mockedRecov.start(anyObject());
expectLastCall().andVoid().anyTimes();
replay(mockedRecov);
PlgmGrid mockedGrid = EasyMock.createNiceMock(PlgmGrid.class);
expect(mockedGrid.recover((PlgmProcessSubject)anyObject())).andReturn(mockedRecov).anyTimes();
replay(mockedGrid);
verify(mockedGrid);
TblLockDao mockedLockDao = createTblLockDao();
TblGridMeasureDao mockedGMDao = createTblGridMeasureDao();
TblSingleGridmeasureDao mockedSGmDao = createTblSingleGridmeasureDao();
TblStepsDao mockStpDao = createTblStepsDao();
//GridMeasureBackendController bc = new GridMeasureBackendController();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblLockDao = mockedLockDao;
tbc.tblGridMeasureDao = mockedGMDao;
tbc.tblSingleGridmeasureDao = mockedSGmDao;
tbc.tblStepsDao = mockStpDao;
ProcessGrid pg = Whitebox.getInternalState(GridMeasureBackendController.class, "processGrid");
Whitebox.setInternalState(GridMeasureBackendController.class, "processGrid", mockedGrid);
try {
tbc.storeGridMeasure(jwtString,"modUser", gm);
}
finally {
Whitebox.setInternalState(GridMeasureBackendController.class, pg);
}
}
@Test( expected = HttpStatusException.class )
public void testStoreGridMeasure_notAuthorized() throws ProcessException, HttpStatusException, Exception {
GridMeasure gm = new GridMeasure();
gm.setId(1);
gm.setStatusId(3);
PlgmProcessSubject sub = PlgmProcessSubject.fromGridMeasure(gm, "modUser");
Recoverable<PlgmProcessSubject> mockedRecov
= EasyMock.createMock(Recoverable.class);
mockedRecov.start(anyObject());
expectLastCall().andVoid().anyTimes();
replay(mockedRecov);
PlgmGrid mockedGrid = EasyMock.createNiceMock(PlgmGrid.class);
expect(mockedGrid.recover((PlgmProcessSubject)anyObject())).andReturn(mockedRecov).anyTimes();
replay(mockedGrid);
verify(mockedGrid);
TblLockDao mockedLockDao = createTblLockDao();
TblGridMeasureDao mockedGMDao = createTblGridMeasureDaoStatus();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblLockDao = mockedLockDao;
tbc.tblGridMeasureDao = mockedGMDao;
ProcessGrid pg = Whitebox.getInternalState(GridMeasureBackendController.class, "processGrid");
Whitebox.setInternalState(GridMeasureBackendController.class, "processGrid", mockedGrid);
try {
tbc.storeGridMeasure(jwtString,"modUser", gm);
}
finally {
Whitebox.setInternalState(GridMeasureBackendController.class, pg);
}
}
@Test( expected = HttpStatusException.class )
public void testStoreGridMeasure_Locked() throws ProcessException, HttpStatusException, Exception {
GridMeasure gm = new GridMeasure();
gm.setId(2);
gm.setStatusId(0);
PlgmProcessSubject sub = PlgmProcessSubject.fromGridMeasure(gm, "modUser");
Recoverable<PlgmProcessSubject> mockedRecov
= EasyMock.createMock(Recoverable.class);
mockedRecov.start(anyObject());
expectLastCall().andVoid().anyTimes();
replay(mockedRecov);
PlgmGrid mockedGrid = EasyMock.createNiceMock(PlgmGrid.class);
expect(mockedGrid.recover((PlgmProcessSubject)anyObject())).andReturn(mockedRecov).anyTimes();
replay(mockedGrid);
verify(mockedGrid);
TblLockDao mockedLockDao = createTblLockDao_locked();
TblGridMeasureDao mockedGMDao = createTblGridMeasureDaoStatus();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblLockDao = mockedLockDao;
tbc.tblGridMeasureDao = mockedGMDao;
ProcessGrid pg = Whitebox.getInternalState(GridMeasureBackendController.class, "processGrid");
Whitebox.setInternalState(GridMeasureBackendController.class, "processGrid", mockedGrid);
try {
tbc.storeGridMeasure(jwtString,"modUser", gm);
}
finally {
Whitebox.setInternalState(GridMeasureBackendController.class, pg);
}
}
@Test( expected = HttpStatusException.class )
public void testStoreGridMeasure_SimpleProcessException() throws ProcessException, HttpStatusException {
testStoreGridMeasureBase_exception(new ProcessException(""));
}
@Test( expected = HttpStatusException.class )
public void testStoreGridMeasure_NestedProcessException() throws ProcessException, HttpStatusException {
try {
testStoreGridMeasureBase_exception(new ProcessException("", new HttpStatusException(HttpStatus.SC_BAD_REQUEST)));
} catch ( HttpStatusException e ) {
assertEquals(HttpStatus.SC_BAD_REQUEST, e.getHttpStatus());
throw e;
}
}
protected void testStoreGridMeasureBase_exception(Exception exceptionToThrow) throws ProcessException, HttpStatusException {
TblLockDao mockedLockDao;
GridMeasure gm = new GridMeasure();
gm.setStatusId(1);
PlgmProcessSubject sub = PlgmProcessSubject.fromGridMeasure(gm, "modUser");
Recoverable<PlgmProcessSubject> mockedRecov
= EasyMock.createMock(Recoverable.class);
mockedRecov.start(anyObject());
expectLastCall().andThrow(exceptionToThrow).anyTimes();
replay(mockedRecov);
verify(mockedRecov);
PlgmGrid mockedGrid = EasyMock.createNiceMock(PlgmGrid.class);
expect(mockedGrid.recover((PlgmProcessSubject)anyObject())).andReturn(mockedRecov).anyTimes();
replay(mockedGrid);
verify(mockedGrid);
try {
mockedLockDao = createTblLockDao();
}
catch(Exception e){
throw new HttpStatusException(HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
TblGridMeasureDao mockedGMDao = createTblGridMeasureDao();
//GridMeasureBackendController bc = new GridMeasureBackendController();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblLockDao = mockedLockDao;
tbc.tblGridMeasureDao = mockedGMDao;
ProcessGrid pg = Whitebox.getInternalState(GridMeasureBackendController.class, "processGrid");
Whitebox.setInternalState(GridMeasureBackendController.class, "processGrid", mockedGrid);
try {
tbc.storeGridMeasure(jwtString, "modUser", gm);
}
finally {
Whitebox.setInternalState(GridMeasureBackendController.class, "processGrid", pg);
}
}
@Test
public void testgGetCurrentReminders() throws Exception {
List remindersList = new ArrayList();
TblGridMeasureDao mockedGmDao = createTblGridMeasureDao();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblGridMeasureDao = mockedGmDao;
remindersList = tbc.getCurrentReminders(jwtString);
assertTrue(remindersList != null);
assertTrue(!remindersList.isEmpty());
}
@Test
public void testgGetExpiredReminders() throws Exception {
List remindersList = new ArrayList();
TblGridMeasureDao mockedGmDao = createTblGridMeasureDao();
TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
tbc.tblGridMeasureDao = mockedGmDao;
remindersList = tbc.getExpiredReminders(jwtString);
assertTrue(remindersList != null);
assertTrue(!remindersList.isEmpty());
}
@Test
public void testCheckLock_locked() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Lock vmLock = tbc.checkLock(2,"GridMeasure");
assertTrue(vmLock != null);
assertEquals(vmLock.getId(), (Integer)1);
assertEquals(vmLock.getKey(), (Integer)2);
assertEquals(vmLock.getInfo(), "GridMeasure");
}
@Test( expected = HttpStatusException.class )
public void testCheckLock_notLocked() throws HttpStatusException {
TblLockDao mockedDao = createTblLockDao_null();
tbc.tblLockDao = mockedDao;
Lock vmLock = tbc.checkLock(3,"GridMeasureX");
}
@Test
public void testCreateLock_actualUser() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Lock vmLock = tbc.createLock("Testuser",2,"GridMeasure");
assertTrue(vmLock != null);
assertEquals(vmLock.getId(), (Integer)1);
assertEquals(vmLock.getKey(), (Integer)2);
assertEquals(vmLock.getInfo(), "GridMeasure");
}
@Test( expected = HttpStatusException.class )
public void testCreateLock_locked() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Lock vmLock = tbc.createLock("TestuserX",2,"GridMeasure");
}
@Test
public void testCreateLock_notLocked() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Lock vmLock = tbc.createLock("Testuser",5,"GridMeasureX");
assertTrue(vmLock != null);
assertEquals(vmLock.getId(), (Integer)1);
assertEquals(vmLock.getKey(), (Integer)2);
assertEquals(vmLock.getInfo(), "GridMeasure");
}
@Test
public void testDeleteLock_notExisting() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Integer key = tbc.deleteLock("Testuser",5,"GridMeasureX", false);
assertTrue( key == 5 );
}
@Test
public void testDeleteLock() throws Exception {
TblLockDao mockedDao = createTblLockDao();
tbc.tblLockDao = mockedDao;
Integer key = tbc.deleteLock("Testuser",2,"GridMeasure", false);
assertTrue(key == 2);
}
@Test
public void testGetMailAddressesFromGridmeasures(){
TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
List<String> mailAddressesList = new ArrayList<>();
mailAddressesList.add("testuser1@test.com, testuser2@test.com");
mailAddressesList.add("testuser2@test.com, testuser3@test.com");
mailAddressesList.add("testuser3@test.com, testuser4@test.com");
MailAddressCache cacheMock = PowerMock.createNiceMock(MailAddressCache.class);
expect(cacheMock.getMailAddresses()).andReturn(mailAddressesList);
replay(cacheMock);
be.mailAddressCache = cacheMock;
List<String> retList = be.getMailAddressesFromGridmeasures();
assertTrue(retList != null);
}
@Test
public void testGetResponsiblesOnSiteFromSingleGridmeasures(){
TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
List<String> sList = new ArrayList<>(3);
sList.add("Heini");
sList.add("Martha");
sList.add("Luis");
TblSingleGridmeasureDao daoMock = PowerMock.createNiceMock(TblSingleGridmeasureDao.class);
expect(daoMock.getResponsiblesOnSite()).andReturn(sList);
replay(daoMock);
be.tblSingleGridmeasureDao = daoMock;
assertEquals( be.getResponsiblesOnSiteFromSingleGridmeasures().size(), 3 );
}
@Test
public void testGetCalender() {
TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
TblGridMeasureDao mockedGmDao = createTblGridMeasureDao();
be.tblGridMeasureDao = mockedGmDao;
TblSingleGridmeasureDao mockedSgmDao = createTblSingleGridmeasureDao();
be.tblSingleGridmeasureDao = mockedSgmDao;
assertEquals( be.getCalender().size(),5);
}
@Test
public void testGetUserDepartmentsResponsibleOnSite() throws Exception {
TblSingleGridmeasureDao dao = createTblSingleGridmeasureDao();
GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
tbc.tblSingleGridmeasureDao = dao;
List<String> retList = tbc.getUserDepartmentsResponsibleOnSite();
List<String> orgList = dao.getUserDepartmentsResponsibleOnSite();
TestCase.assertEquals(orgList.size(), retList.size());
}
@Test
public void testGetUserDepartmentsCreated() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
tbc.tblGridMeasureDao = dao;
List<String> retList = tbc.getUserDepartmentsCreated();
List<String> orgList = dao.getUserDepartmentsCreated();
TestCase.assertEquals(orgList.size(), retList.size());
}
@Test
public void testGetUserDepartmentsModified() throws Exception {
TblGridMeasureDao dao = createTblGridMeasureDao();
GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
tbc.tblGridMeasureDao = dao;
List<String> retList = tbc.getUserDepartmentsModified();
List<String> orgList = dao.getUserDepartmentsModified();
TestCase.assertEquals(orgList.size(), retList.size());
}
@Test
public void testGetNetworkControlsFromSingleGridmeasures() throws Exception {
TblSingleGridmeasureDao dao = createTblSingleGridmeasureDao();
GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
tbc.tblSingleGridmeasureDao = dao;
List<String> retList = tbc.getNetworkControlsFromSingleGridmeasures();
List<String> orgList = dao.getNetworkControls();
TestCase.assertEquals(orgList.size(), retList.size());
}
}