/*
* Tanaguru - Automated webpage assessment
* Copyright (C) 2008-2015 Tanaguru.org
*
* This file is part of Tanaguru.
*
* Tanaguru is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contact us by mail: tanaguru AT tanaguru DOT org
*/
package org.tanaguru.service;
import java.util.*;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.tanaguru.entity.audit.Audit;
import org.tanaguru.entity.parameterization.Parameter;
import org.tanaguru.entity.service.audit.AuditDataService;
import org.tanaguru.entity.service.parameterization.ParameterDataService;
import org.tanaguru.entity.service.reference.TestDataService;
import org.tanaguru.entity.service.subject.WebResourceDataService;
import org.tanaguru.service.command.AuditCommand;
import org.tanaguru.service.command.factory.AuditCommandFactory;
/**
*
* @author jkowalczyk
*/
public class AuditServiceImplTest extends TestCase {
private AuditDataService mockAuditDataService;
private WebResourceDataService mockWebResourceDataService;
private TestDataService mockTestDataService;
private ParameterDataService mockParameterDataService;
private AuditServiceThreadFactory mockAuditServiceThreadFactory;
public AuditServiceImplTest(String testName) {
super(testName);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mockAuditDataService = EasyMock.createMock(AuditDataService.class);
mockWebResourceDataService =
EasyMock.createMock(WebResourceDataService.class);
mockTestDataService = EasyMock.createMock(TestDataService.class);
mockParameterDataService =
EasyMock.createMock(ParameterDataService.class);
mockAuditServiceThreadFactory =
EasyMock.createMock(AuditServiceThreadFactory.class);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
/**
* Test of remove method, of class AuditServiceImpl.
*/
public void testAddAndRemove() {
AuditServiceImpl instance = initialiseAuditService();
AuditServiceListener mockAuditServiceListener =
EasyMock.createMock(AuditServiceListener.class);
// when try to remove a listener not recorded, nothing happened
instance.remove(mockAuditServiceListener);
instance.add(mockAuditServiceListener);
assertTrue(instance.getListeners().contains(mockAuditServiceListener));
instance.remove(mockAuditServiceListener);
assertTrue(instance.getListeners().isEmpty());
}
/**
* Test of auditPage method, of class AuditServiceImpl.
*/
public void testAuditPage() {
System.out.println("auditPage");
String pageUrl = "http://My.testUrl.org";
Set<Parameter> paramSet = null;
AuditServiceImpl instance = initialiseAuditService();
Audit auditCreateByAuditCommand = EasyMock.createMock(Audit.class);
AuditCommand mockAuditCommand = EasyMock.createMock(AuditCommand.class);
EasyMock.expect(mockAuditCommand.getAudit()).
andReturn(auditCreateByAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommand);
AuditCommandFactory mockAuditCommandFactory = EasyMock.createMock(AuditCommandFactory.class);
EasyMock.expect(mockAuditCommandFactory.create(pageUrl, paramSet, false)).
andReturn(mockAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommandFactory);
instance.setAuditCommandFactory(mockAuditCommandFactory);
// anyTimes the audit is created and set-up, the auditServiceThreadQueue is
// called to effectively launch the page audit
AuditServiceThreadQueue mockAuditServiceThreadQueue =
EasyMock.createMock(AuditServiceThreadQueue.class);
mockAuditServiceThreadQueue.add(instance);
EasyMock.expectLastCall().anyTimes();
mockAuditServiceThreadQueue.addPageAudit(mockAuditCommand);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceThreadQueue);
instance.setAuditServiceThreadQueue(mockAuditServiceThreadQueue);
Audit result = instance.auditPage(pageUrl, paramSet);
assertEquals(auditCreateByAuditCommand, result);
EasyMock.verify(mockAuditServiceThreadQueue);
EasyMock.verify(mockAuditCommand);
EasyMock.verify(mockAuditCommandFactory);
}
/**
* Test of auditPage method, of class AuditServiceImpl.
*/
public void testAuditSite() {
System.out.println("auditSite");
String siteUrl = "http://My.testUrl.org";
Set<Parameter> paramSet = null;
AuditServiceImpl instance = initialiseAuditService();
Audit auditCreateByAuditCommand = EasyMock.createMock(Audit.class);
AuditCommand mockAuditCommand = EasyMock.createMock(AuditCommand.class);
EasyMock.expect(mockAuditCommand.getAudit()).
andReturn(auditCreateByAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommand);
AuditCommandFactory mockAuditCommandFactory = EasyMock.createMock(AuditCommandFactory.class);
EasyMock.expect(mockAuditCommandFactory.create(siteUrl, paramSet, true)).
andReturn(mockAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommandFactory);
instance.setAuditCommandFactory(mockAuditCommandFactory);
// anyTimes the audit is created and set-up, the auditServiceThreadQueue is
// called to effectively launch the site audit
AuditServiceThreadQueue mockAuditServiceThreadQueue =
EasyMock.createMock(AuditServiceThreadQueue.class);
mockAuditServiceThreadQueue.add(instance);
EasyMock.expectLastCall().anyTimes();
mockAuditServiceThreadQueue.addSiteAudit(mockAuditCommand);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceThreadQueue);
instance.setAuditServiceThreadQueue(mockAuditServiceThreadQueue);
Audit result = instance.auditSite(siteUrl, paramSet);
assertEquals(auditCreateByAuditCommand, result);
EasyMock.verify(mockAuditServiceThreadQueue);
EasyMock.verify(mockAuditCommand);
EasyMock.verify(mockAuditCommandFactory);
}
/**
* Test of auditPage method, of class AuditServiceImpl.
*/
public void testAuditGroupOfPages() {
System.out.println("auditGroupOfPages");
String siteUrl = "http://My.testUrl.org";
String pageUrl = "http://My.testUrlPage1.org";
Set<Parameter> paramSet = null;
List<String> urlList = new ArrayList<>();
urlList.add(pageUrl);
AuditServiceImpl instance = initialiseAuditService();
Audit auditCreateByAuditCommand = EasyMock.createMock(Audit.class);
AuditCommand mockAuditCommand = EasyMock.createMock(AuditCommand.class);
EasyMock.expect(mockAuditCommand.getAudit()).
andReturn(auditCreateByAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommand);
AuditCommandFactory mockAuditCommandFactory = EasyMock.createMock(AuditCommandFactory.class);
EasyMock.expect(mockAuditCommandFactory.create(siteUrl, urlList, paramSet)).
andReturn(mockAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommandFactory);
instance.setAuditCommandFactory(mockAuditCommandFactory);
// anyTimes the audit is created and set-up, the auditServiceThreadQueue is
// called to effectively launch the site audit
AuditServiceThreadQueue mockAuditServiceThreadQueue =
EasyMock.createMock(AuditServiceThreadQueue.class);
mockAuditServiceThreadQueue.add(instance);
EasyMock.expectLastCall().anyTimes();
mockAuditServiceThreadQueue.addPageAudit(mockAuditCommand);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceThreadQueue);
instance.setAuditServiceThreadQueue(mockAuditServiceThreadQueue);
Audit result = instance.auditSite(siteUrl, urlList, paramSet);
assertEquals(auditCreateByAuditCommand, result);
EasyMock.verify(mockAuditServiceThreadQueue);
EasyMock.verify(mockAuditCommand);
EasyMock.verify(mockAuditCommandFactory);
}
/**
* Test of auditPageUpload method, of class AuditServiceImpl.
*/
public void testAuditPageUploadWithOneFile() {
System.out.println("auditPageUploadWithOneFile");
Set<Parameter> paramSet = null;
// test we only one file is passed as argument to be tested
String file1Name = "file://test1";
Map<String, String> fileMap = new HashMap<>();
fileMap.put(file1Name, "");
AuditServiceImpl instance = initialiseAuditService();
Audit auditCreateByAuditCommand = EasyMock.createMock(Audit.class);
AuditCommand mockAuditCommand = EasyMock.createMock(AuditCommand.class);
EasyMock.expect(mockAuditCommand.getAudit()).
andReturn(auditCreateByAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommand);
AuditCommandFactory mockAuditCommandFactory = EasyMock.createMock(AuditCommandFactory.class);
EasyMock.expect(mockAuditCommandFactory.create(fileMap, paramSet)).
andReturn(mockAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommandFactory);
instance.setAuditCommandFactory(mockAuditCommandFactory);
// anyTimes the audit is created and set-up, the auditServiceThreadQueue is
// called to effectively launch the pageUpload audit
AuditServiceThreadQueue mockAuditServiceThreadQueue =
EasyMock.createMock(AuditServiceThreadQueue.class);
mockAuditServiceThreadQueue.add(instance);
EasyMock.expectLastCall().anyTimes();
mockAuditServiceThreadQueue.addPageUploadAudit(mockAuditCommand);
EasyMock.replay(mockAuditServiceThreadQueue);
instance.setAuditServiceThreadQueue(mockAuditServiceThreadQueue);
Audit result = instance.auditPageUpload(fileMap, paramSet);
assertEquals(auditCreateByAuditCommand, result);
EasyMock.verify(mockAuditServiceThreadQueue);
EasyMock.verify(mockAuditCommand);
EasyMock.verify(mockAuditCommandFactory);
}
/**
* Test of auditPage method, of class AuditServiceImpl.
*/
public void testAuditScenario() {
System.out.println("auditScenario");
String scenarioName = "MyScenario";
String scenario = "";
AuditServiceImpl instance = initialiseAuditService();
Audit auditCreateByAuditCommand = EasyMock.createMock(Audit.class);
AuditCommand mockAuditCommand = EasyMock.createMock(AuditCommand.class);
EasyMock.expect(mockAuditCommand.getAudit()).
andReturn(auditCreateByAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommand);
AuditCommandFactory mockAuditCommandFactory = EasyMock.createMock(AuditCommandFactory.class);
EasyMock.expect(mockAuditCommandFactory.create(scenarioName, scenario, null)).
andReturn(mockAuditCommand).anyTimes();
EasyMock.replay(mockAuditCommandFactory);
instance.setAuditCommandFactory(mockAuditCommandFactory);
// anyTimes the audit is created and set-up, the auditServiceThreadQueue is
// called to effectively launch the pageUpload audit
AuditServiceThreadQueue mockAuditServiceThreadQueue =
EasyMock.createMock(AuditServiceThreadQueue.class);
mockAuditServiceThreadQueue.add(instance);
EasyMock.expectLastCall().anyTimes();
mockAuditServiceThreadQueue.addScenarioAudit(mockAuditCommand);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceThreadQueue);
instance.setAuditServiceThreadQueue(mockAuditServiceThreadQueue);
Audit result = instance.auditScenario(scenarioName, scenario, null);
assertEquals(auditCreateByAuditCommand, result);
EasyMock.verify(mockAuditServiceThreadQueue);
EasyMock.verify(mockAuditCommand);
EasyMock.verify(mockAuditCommandFactory);
}
/**
* Test of audit method, of class AuditServiceImpl.
*/
public void testAudit() {
AuditServiceImpl instance = initialiseAuditService();
Audit audit = EasyMock.createMock(Audit.class);
Audit auditReturnedByAuditMethodOfAuditServiceThread =
EasyMock.createMock(Audit.class);
AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
mockAuditServiceThread.run();
EasyMock.expectLastCall();
EasyMock.expect(mockAuditServiceThread.getAudit()).
andReturn(auditReturnedByAuditMethodOfAuditServiceThread).anyTimes();
EasyMock.replay(mockAuditServiceThread);
EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
andReturn(mockAuditServiceThread).anyTimes();
EasyMock.replay(mockAuditServiceThreadFactory);
assertEquals(auditReturnedByAuditMethodOfAuditServiceThread,
instance.audit(audit));
EasyMock.verify(mockAuditServiceThread);
EasyMock.verify(mockAuditServiceThreadFactory);
}
// /**
// * Test of init method, of class AuditServiceImpl.
// */
// public void testInit() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByInitMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.init();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByInitMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByInitMethodOfAuditServiceThread,
// instance.init(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of crawl method, of class AuditServiceImpl.
// */
// public void testCrawl() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByCrawlMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.loadContent();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByCrawlMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByCrawlMethodOfAuditServiceThread,
// instance.crawl(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of loadContent method, of class AuditServiceImpl.
// */
// public void testLoadContent() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByLoadContentMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.loadContent();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByLoadContentMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByLoadContentMethodOfAuditServiceThread,
// instance.loadContent(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of loadScenario method, of class AuditServiceImpl.
// */
// public void testLoadScenario() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByLoadScenarioMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.loadContent();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByLoadScenarioMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByLoadScenarioMethodOfAuditServiceThread,
// instance.loadScenario(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of adaptContent method, of class AuditServiceImpl.
// */
// public void testAdaptContent() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByAdaptContentMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.adaptContent();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByAdaptContentMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByAdaptContentMethodOfAuditServiceThread,
// instance.adaptContent(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of process method, of class AuditServiceImpl.
// */
// public void testProcess() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByProcessMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.process();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByProcessMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByProcessMethodOfAuditServiceThread,
// instance.process(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of consolidate method, of class AuditServiceImpl.
// */
// public void testConsolidate() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByConsolidateMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.consolidate();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByConsolidateMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByConsolidateMethodOfAuditServiceThread,
// instance.consolidate(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
// /**
// * Test of analyse method, of class AuditServiceImpl.
// */
// public void testAnalyse() {
// AuditServiceImpl instance = initialiseAuditService();
//
// Audit audit = EasyMock.createMock(Audit.class);
// Audit auditReturnedByAnalyseMethodOfAuditServiceThread =
// EasyMock.createMock(Audit.class);
//
// AuditServiceThread mockAuditServiceThread = EasyMock.createMock(AuditServiceThread.class);
//
// mockAuditServiceThread.analyse();
// EasyMock.expectLastCall();
// EasyMock.expect(mockAuditServiceThread.getAudit()).
// andReturn(auditReturnedByAnalyseMethodOfAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThread);
//
// EasyMock.expect(mockAuditServiceThreadFactory.create(audit)).
// andReturn(mockAuditServiceThread).anyTimes();
// EasyMock.replay(mockAuditServiceThreadFactory);
//
// assertEquals(auditReturnedByAnalyseMethodOfAuditServiceThread,
// instance.analyse(audit));
//
// EasyMock.verify(mockAuditServiceThread);
// EasyMock.verify(mockAuditServiceThreadFactory);
// }
/**
* Test of auditCompleted method, of class AuditServiceImpl.
*/
public void testAuditCompleted() {
AuditServiceImpl instance = initialiseAuditService();
Audit mockAudit = EasyMock.createMock(Audit.class);
AuditServiceListener mockAuditServiceListener = EasyMock.createMock(AuditServiceListener.class);
mockAuditServiceListener.auditCompleted(mockAudit);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceListener);
EasyMock.replay(mockAudit);
instance.add(mockAuditServiceListener);
instance.auditCompleted(mockAudit);
EasyMock.verify(mockAudit);
EasyMock.verify(mockAuditServiceListener);
}
/**
* Test of auditCompleted method, of class AuditServiceImpl.
*/
public void testAuditCrashed() {
AuditServiceImpl instance = initialiseAuditService();
Audit mockAudit = EasyMock.createMock(Audit.class);
Exception mockException = EasyMock.createMock(Exception.class);
AuditServiceListener mockAuditServiceListener = EasyMock.createMock(AuditServiceListener.class);
mockAuditServiceListener.auditCrashed(mockAudit, mockException);
EasyMock.expectLastCall().anyTimes();
EasyMock.replay(mockAuditServiceListener);
EasyMock.replay(mockAudit);
EasyMock.replay(mockException);
instance.add(mockAuditServiceListener);
instance.auditCrashed(mockAudit, mockException);
EasyMock.verify(mockAudit);
EasyMock.verify(mockAuditServiceListener);
EasyMock.verify(mockException);
}
/**
*
* @return
*/
private AuditServiceImpl initialiseAuditService() {
AuditServiceImpl auditService = new AuditServiceImpl();
auditService.setAuditServiceThreadFactory(mockAuditServiceThreadFactory);
return auditService;
}
}