Author: bleny Date: 2011-06-10 08:48:22 +0000 (Fri, 10 Jun 2011) New Revision: 1333 Log: rename test according to convention Added: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisTest.java Removed: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2011-06-09 16:01:11 UTC (rev 1332) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2011-06-10 08:48:22 UTC (rev 1333) @@ -1,485 +0,0 @@ -/* - * #%L - * Wao :: Business - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer - * %% - * This program 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 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/>. - * #L% - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoDAOHelper; -import fr.ifremer.wao.bean.BoardingResult; -import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.bean.ContactAverageReactivity; -import fr.ifremer.wao.bean.ContactState; -import fr.ifremer.wao.bean.ContactStateStatistics; -import fr.ifremer.wao.bean.ObsProgram; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; -import fr.ifremer.wao.bean.UserRole; -import fr.ifremer.wao.entity.Boat; -import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.CompanyDAO; -import fr.ifremer.wao.entity.Contact; -import fr.ifremer.wao.entity.ContactImpl; -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.SampleRowDAO; -import fr.ifremer.wao.entity.WaoUser; -import fr.ifremer.wao.entity.WaoUserDAO; -import org.apache.commons.collections.CollectionUtils; -import org.junit.Before; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.util.DateUtil; -import org.nuiton.util.PeriodDates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.InputStream; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -/** - * - * @author fdesbois <fdesbois at codelutin.com> - */ -public class ServiceSynthesisImplTest extends AbstractServiceTest { - - private static final Logger log = - LoggerFactory.getLogger(ServiceSynthesisImplTest.class); - - protected ServiceSynthesis service; - - @Before - public void initialize() { - manager.setCurrentDate(DateUtil.createDate(5, 10, 2010)); - service = manager.getServiceSynthesis(); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetBoardingBoats() throws Exception { - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = manager.getServiceBoat(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = manager.getContext().beginTransaction(); - - CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); - - WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", - WaoUser.PROPERTY_COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", - WaoUser.PROPERTY_COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = manager.getServiceReferential(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = manager.getServiceSampling(); - serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); - - SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - - transaction.closeContext(); - - ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); - - ServiceContact serviceContact = manager.getServiceContact(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setBoat(boat); - contact1.setMainObserver(user); - contact1.setSampleRow(row); - contact1.setContactState(ContactState.OBSERVATION_DONE); - Date begin = DateUtil.createDate(3, 3, 2010); - contact1.setObservationBeginDate(begin); - Date end = DateUtil.createDate(4, 3, 2010); - contact1.setObservationEndDate(end); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setBoat(boat); - contact2.setMainObserver(user); - contact2.setSampleRow(row); - contact2.setContactState(ContactState.OBSERVATION_DONE); - begin = DateUtil.createDate(3, 3, 2010); - contact2.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact2.setObservationEndDate(end); - contact2.setValidationCompany(Boolean.TRUE); - contact2.setObservationBeginDate(begin); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setBoat(boat2); - contact3.setMainObserver(user); - contact3.setSampleRow(row); - contact3.setContactState(ContactState.OBSERVATION_DONE); - begin = DateUtil.createDate(3, 3, 2010); - contact3.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact3.setObservationEndDate(end); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact3, false); - - /** EXEC METHOD **/ - SamplingFilter filter = new SamplingFilterImpl(); - filter.setEstimatedTides(true); - BoardingResult result = service.getBoardingBoats(filter); - // one boat with one boarding (177474) - assertEquals(1, result.getBoardings().get("1").intValue()); - // one boat with two boardings (174258) - assertEquals(1, result.getBoardings().get("2").intValue()); - assertEquals(2, result.getMaxBoardingValue()); - assertEquals(174258, result.getMaxBoardingBoat().getImmatriculation()); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetComplianceBoardingIndicator() throws Exception { - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = manager.getServiceBoat(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = manager.getContext().beginTransaction(); - - CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); - - WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", - WaoUser.PROPERTY_COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", - WaoUser.PROPERTY_COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = manager.getServiceReferential(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = manager.getServiceSampling(); - serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); - - SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - SampleRow row2 = rowDAO.findByCode("2009_0006"); - - transaction.closeContext(); - - ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); - - ServiceContact serviceContact = manager.getServiceContact(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setBoat(boat); - contact1.setMainObserver(user); - contact1.setSampleRow(row); - // 1 real observer over 1 - contact1.setNbObservants(1); - contact1.setContactState(ContactState.OBSERVATION_DONE); - Date begin = DateUtil.createDate(3, 3, 2010); - contact1.setObservationBeginDate(begin); - Date end = DateUtil.createDate(4, 3, 2010); - contact1.setObservationEndDate(end); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setBoat(boat); - contact2.setMainObserver(user); - contact2.setSampleRow(row); - // 2 real observer over 1 - contact2.setNbObservants(2); - contact2.setContactState(ContactState.OBSERVATION_DONE); - begin = DateUtil.createDate(3, 3, 2010); - contact2.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact2.setObservationEndDate(end); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setBoat(boat2); - contact3.setMainObserver(user2); - contact3.setSampleRow(row2); - // 1 real observer over 2 - contact3.setNbObservants(1); - contact3.setContactState(ContactState.OBSERVATION_DONE); - begin = DateUtil.createDate(3, 3, 2010); - contact3.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact3.setObservationEndDate(end); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact3, false); - - /** EXEC METHOD **/ - - // result for company TARTANPION - SamplingFilter filter = new SamplingFilterImpl(); - filter.setCompany(company); - Map<String, Double> results = - service.getComplianceBoardingIndicator(filter); - - assertEquals(1, results.size()); - - // 0% of non compliance - Double value = results.get(company.getName()); - assertEquals(1., value, 0); - - // result for company BIS using admin mode (no company filtered) - filter = new SamplingFilterImpl(); - results = service.getComplianceBoardingIndicator(filter); - - assertEquals(2, results.size()); - - // 100% of non compliance - value = results.get(company2.getName()); - assertEquals(0., value, 0); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetContactStateStatistics() throws Exception { - /** PREPARE DATA **/ - - // Company TARTANPION - Company company = createDefaultCompany(); - Company company2 = createCompany("BIS"); - - prepareContactsData(company, company2); - - /** EXEC METHOD **/ - - // result for company TARTANPION with no period - SamplingFilter filter = new SamplingFilterImpl(); - filter.setEstimatedTides(true); - filter.setCompany(company); - Collection<ContactStateStatistics> results = - service.getContactStateStatistics(filter); - - assertEquals(1, results.size()); - ContactStateStatistics result = (ContactStateStatistics)CollectionUtils.get(results, 0); - assertEquals(3, result.getTotal()); - Map<ContactState, Integer> data = result.getData(); - assertNotNull(data); - - assertEquals(ContactState.values().length, data.size()); - assertEquals(2, data.get(ContactState.OBSERVATION_DONE).intValue()); - assertEquals(1, data.get(ContactState.CONTACT_REFUSED).intValue()); - - // result for company BIS using admin mode - filter = new SamplingFilterImpl(); - filter.setEstimatedTides(true); - results = service.getContactStateStatistics(filter); - assertEquals(2, results.size()); - - result = null; - for (ContactStateStatistics stats : results) { - if (stats.getCompanyName().equals(company2.getName())) { - result = stats; - break; - } - } - - assertEquals(2, result.getTotal()); - data = result.getData(); - assertEquals(1, data.get(ContactState.OBSERVATION_EXPECTED).intValue()); - assertEquals(1, data.get(ContactState.OBSERVATION_CANCELLED).intValue()); - - // result for period 3/1/2010 to 31/3/2010 for BIS company - Date begin = DateUtil.createDate(3, 1, 2010); - Date end = DateUtil.createDate(31, 3, 2010); - PeriodDates period = new PeriodDates(begin, end); - - filter = new SamplingFilterImpl(); - filter.setEstimatedTides(true); - filter.setCompany(company2); - filter.setPeriod(period); - results = service.getContactStateStatistics(filter); - assertEquals(1, results.size()); - - result = (ContactStateStatistics)CollectionUtils.get(results, 0); - - assertEquals(1, result.getTotal()); - data = result.getData(); - assertEquals(1, data.get(ContactState.OBSERVATION_EXPECTED).intValue()); - assertEquals(0, data.get(ContactState.OBSERVATION_CANCELLED).intValue()); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetContactDataInputDateReactivity() throws Exception { - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = manager.getServiceBoat(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = manager.getContext().beginTransaction(); - - CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); - - WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", - WaoUser.PROPERTY_COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", - WaoUser.PROPERTY_COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = manager.getServiceReferential(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = manager.getServiceSampling(); - serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); - - SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - SampleRow row2 = rowDAO.findByCode("2009_0006"); - - transaction.closeContext(); - - ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); - - ServiceContact serviceContact = manager.getServiceContact(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setBoat(boat); - contact1.setMainObserver(user); - contact1.setSampleRow(row); - Date begin = DateUtil.createDate(3, 3, 2010); - contact1.setObservationBeginDate(begin); - Date end = DateUtil.createDate(4, 3, 2010); - contact1.setObservationEndDate(end); - Date inputDate = DateUtil.createDate(15, 4, 2010); - contact1.setDataInputDate(inputDate); - contact1.setContactState(ContactState.OBSERVATION_DONE); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setBoat(boat); - contact2.setMainObserver(user); - contact2.setSampleRow(row); - begin = DateUtil.createDate(3, 3, 2010); - contact2.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact2.setObservationEndDate(end); - inputDate = DateUtil.createDate(15, 3, 2010); - contact2.setDataInputDate(inputDate); - contact2.setContactState(ContactState.OBSERVATION_DONE); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setBoat(boat2); - contact3.setMainObserver(user2); - contact3.setSampleRow(row2); - begin = DateUtil.createDate(3, 3, 2010); - contact3.setObservationBeginDate(begin); - end = DateUtil.createDate(4, 3, 2010); - contact3.setObservationEndDate(end); - contact3.setDataInputDate(DateUtil.createDate(6, 3, 2010)); - contact3.setContactState(ContactState.OBSERVATION_DONE); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(connectedUser, contact3, false); - - /** EXEC METHOD **/ - - PeriodDates period = new PeriodDates(begin, begin); - SamplingFilter filter = new SamplingFilterImpl(); - filter.setCompany(company); - filter.setPeriod(period); - - // result for company TARTANPION - Collection<ContactAverageReactivity> results = - service.getContactDataInputDateReactivity(filter); - - assertEquals(1, results.size()); - - // 12 days for contact1 + 43 days for contact2 / 2 = 27.5 days - ContactAverageReactivity res = - (ContactAverageReactivity)CollectionUtils.get(results, 0); - - assertEquals(27., res.getResult(), 0.01); - - // result for company BIS using admin mode (no company filtered) - filter = new SamplingFilterImpl(); - filter.setPeriod(period); - results = service.getContactDataInputDateReactivity(filter); - - // 6 days for contact3 / 1 = 6 days - res = (ContactAverageReactivity)CollectionUtils.get(results, 0); - - assertEquals(3, res.getResult(), 0.01); - } -} Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisTest.java (from rev 1327, trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisTest.java 2011-06-10 08:48:22 UTC (rev 1333) @@ -0,0 +1,485 @@ +/* + * #%L + * Wao :: Business + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer + * %% + * This program 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 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/>. + * #L% + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoDAOHelper; +import fr.ifremer.wao.bean.BoardingResult; +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.ContactAverageReactivity; +import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.ContactStateStatistics; +import fr.ifremer.wao.bean.ObsProgram; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.SamplingFilterImpl; +import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyDAO; +import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.ContactImpl; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowDAO; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.entity.WaoUserDAO; +import org.apache.commons.collections.CollectionUtils; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.util.DateUtil; +import org.nuiton.util.PeriodDates; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.InputStream; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** + * + * @author fdesbois <fdesbois at codelutin.com> + */ +public class ServiceSynthesisTest extends AbstractServiceTest { + + private static final Logger log = + LoggerFactory.getLogger(ServiceSynthesisTest.class); + + protected ServiceSynthesis service; + + @Before + public void initialize() { + manager.setCurrentDate(DateUtil.createDate(5, 10, 2010)); + service = manager.getServiceSynthesis(); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetBoardingBoats() throws Exception { + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = manager.getServiceBoat(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = manager.getContext().beginTransaction(); + + CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); + + WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", + WaoUser.PROPERTY_COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", + WaoUser.PROPERTY_COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = manager.getServiceReferential(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = manager.getServiceSampling(); + serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); + + SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + + transaction.closeContext(); + + ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); + + ServiceContact serviceContact = manager.getServiceContact(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setBoat(boat); + contact1.setMainObserver(user); + contact1.setSampleRow(row); + contact1.setContactState(ContactState.OBSERVATION_DONE); + Date begin = DateUtil.createDate(3, 3, 2010); + contact1.setObservationBeginDate(begin); + Date end = DateUtil.createDate(4, 3, 2010); + contact1.setObservationEndDate(end); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setBoat(boat); + contact2.setMainObserver(user); + contact2.setSampleRow(row); + contact2.setContactState(ContactState.OBSERVATION_DONE); + begin = DateUtil.createDate(3, 3, 2010); + contact2.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact2.setObservationEndDate(end); + contact2.setValidationCompany(Boolean.TRUE); + contact2.setObservationBeginDate(begin); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setBoat(boat2); + contact3.setMainObserver(user); + contact3.setSampleRow(row); + contact3.setContactState(ContactState.OBSERVATION_DONE); + begin = DateUtil.createDate(3, 3, 2010); + contact3.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact3.setObservationEndDate(end); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact3, false); + + /** EXEC METHOD **/ + SamplingFilter filter = new SamplingFilterImpl(); + filter.setEstimatedTides(true); + BoardingResult result = service.getBoardingBoats(filter); + // one boat with one boarding (177474) + assertEquals(1, result.getBoardings().get("1").intValue()); + // one boat with two boardings (174258) + assertEquals(1, result.getBoardings().get("2").intValue()); + assertEquals(2, result.getMaxBoardingValue()); + assertEquals(174258, result.getMaxBoardingBoat().getImmatriculation()); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetComplianceBoardingIndicator() throws Exception { + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = manager.getServiceBoat(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = manager.getContext().beginTransaction(); + + CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); + + WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", + WaoUser.PROPERTY_COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", + WaoUser.PROPERTY_COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = manager.getServiceReferential(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = manager.getServiceSampling(); + serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); + + SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + SampleRow row2 = rowDAO.findByCode("2009_0006"); + + transaction.closeContext(); + + ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); + + ServiceContact serviceContact = manager.getServiceContact(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setBoat(boat); + contact1.setMainObserver(user); + contact1.setSampleRow(row); + // 1 real observer over 1 + contact1.setNbObservants(1); + contact1.setContactState(ContactState.OBSERVATION_DONE); + Date begin = DateUtil.createDate(3, 3, 2010); + contact1.setObservationBeginDate(begin); + Date end = DateUtil.createDate(4, 3, 2010); + contact1.setObservationEndDate(end); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setBoat(boat); + contact2.setMainObserver(user); + contact2.setSampleRow(row); + // 2 real observer over 1 + contact2.setNbObservants(2); + contact2.setContactState(ContactState.OBSERVATION_DONE); + begin = DateUtil.createDate(3, 3, 2010); + contact2.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact2.setObservationEndDate(end); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setBoat(boat2); + contact3.setMainObserver(user2); + contact3.setSampleRow(row2); + // 1 real observer over 2 + contact3.setNbObservants(1); + contact3.setContactState(ContactState.OBSERVATION_DONE); + begin = DateUtil.createDate(3, 3, 2010); + contact3.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact3.setObservationEndDate(end); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact3, false); + + /** EXEC METHOD **/ + + // result for company TARTANPION + SamplingFilter filter = new SamplingFilterImpl(); + filter.setCompany(company); + Map<String, Double> results = + service.getComplianceBoardingIndicator(filter); + + assertEquals(1, results.size()); + + // 0% of non compliance + Double value = results.get(company.getName()); + assertEquals(1., value, 0); + + // result for company BIS using admin mode (no company filtered) + filter = new SamplingFilterImpl(); + results = service.getComplianceBoardingIndicator(filter); + + assertEquals(2, results.size()); + + // 100% of non compliance + value = results.get(company2.getName()); + assertEquals(0., value, 0); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetContactStateStatistics() throws Exception { + /** PREPARE DATA **/ + + // Company TARTANPION + Company company = createDefaultCompany(); + Company company2 = createCompany("BIS"); + + prepareContactsData(company, company2); + + /** EXEC METHOD **/ + + // result for company TARTANPION with no period + SamplingFilter filter = new SamplingFilterImpl(); + filter.setEstimatedTides(true); + filter.setCompany(company); + Collection<ContactStateStatistics> results = + service.getContactStateStatistics(filter); + + assertEquals(1, results.size()); + ContactStateStatistics result = (ContactStateStatistics)CollectionUtils.get(results, 0); + assertEquals(3, result.getTotal()); + Map<ContactState, Integer> data = result.getData(); + assertNotNull(data); + + assertEquals(ContactState.values().length, data.size()); + assertEquals(2, data.get(ContactState.OBSERVATION_DONE).intValue()); + assertEquals(1, data.get(ContactState.CONTACT_REFUSED).intValue()); + + // result for company BIS using admin mode + filter = new SamplingFilterImpl(); + filter.setEstimatedTides(true); + results = service.getContactStateStatistics(filter); + assertEquals(2, results.size()); + + result = null; + for (ContactStateStatistics stats : results) { + if (stats.getCompanyName().equals(company2.getName())) { + result = stats; + break; + } + } + + assertEquals(2, result.getTotal()); + data = result.getData(); + assertEquals(1, data.get(ContactState.OBSERVATION_EXPECTED).intValue()); + assertEquals(1, data.get(ContactState.OBSERVATION_CANCELLED).intValue()); + + // result for period 3/1/2010 to 31/3/2010 for BIS company + Date begin = DateUtil.createDate(3, 1, 2010); + Date end = DateUtil.createDate(31, 3, 2010); + PeriodDates period = new PeriodDates(begin, end); + + filter = new SamplingFilterImpl(); + filter.setEstimatedTides(true); + filter.setCompany(company2); + filter.setPeriod(period); + results = service.getContactStateStatistics(filter); + assertEquals(1, results.size()); + + result = (ContactStateStatistics)CollectionUtils.get(results, 0); + + assertEquals(1, result.getTotal()); + data = result.getData(); + assertEquals(1, data.get(ContactState.OBSERVATION_EXPECTED).intValue()); + assertEquals(0, data.get(ContactState.OBSERVATION_CANCELLED).intValue()); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetContactDataInputDateReactivity() throws Exception { + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = manager.getServiceBoat(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = manager.getContext().beginTransaction(); + + CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.PROPERTY_NAME, "BIS"); + + WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Jean", WaoUser.PROPERTY_LAST_NAME, "Michmuche", + WaoUser.PROPERTY_COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.PROPERTY_FIRST_NAME,"Bill", WaoUser.PROPERTY_LAST_NAME, "Murray", + WaoUser.PROPERTY_COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = manager.getServiceReferential(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = manager.getServiceSampling(); + serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER)); + + SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + SampleRow row2 = rowDAO.findByCode("2009_0006"); + + transaction.closeContext(); + + ConnectedUser connectedUser = getConnectedUser(user, UserRole.ADMIN, ObsProgram.OBSMER); + + ServiceContact serviceContact = manager.getServiceContact(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setBoat(boat); + contact1.setMainObserver(user); + contact1.setSampleRow(row); + Date begin = DateUtil.createDate(3, 3, 2010); + contact1.setObservationBeginDate(begin); + Date end = DateUtil.createDate(4, 3, 2010); + contact1.setObservationEndDate(end); + Date inputDate = DateUtil.createDate(15, 4, 2010); + contact1.setDataInputDate(inputDate); + contact1.setContactState(ContactState.OBSERVATION_DONE); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setBoat(boat); + contact2.setMainObserver(user); + contact2.setSampleRow(row); + begin = DateUtil.createDate(3, 3, 2010); + contact2.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact2.setObservationEndDate(end); + inputDate = DateUtil.createDate(15, 3, 2010); + contact2.setDataInputDate(inputDate); + contact2.setContactState(ContactState.OBSERVATION_DONE); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setBoat(boat2); + contact3.setMainObserver(user2); + contact3.setSampleRow(row2); + begin = DateUtil.createDate(3, 3, 2010); + contact3.setObservationBeginDate(begin); + end = DateUtil.createDate(4, 3, 2010); + contact3.setObservationEndDate(end); + contact3.setDataInputDate(DateUtil.createDate(6, 3, 2010)); + contact3.setContactState(ContactState.OBSERVATION_DONE); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(connectedUser, contact3, false); + + /** EXEC METHOD **/ + + PeriodDates period = new PeriodDates(begin, begin); + SamplingFilter filter = new SamplingFilterImpl(); + filter.setCompany(company); + filter.setPeriod(period); + + // result for company TARTANPION + Collection<ContactAverageReactivity> results = + service.getContactDataInputDateReactivity(filter); + + assertEquals(1, results.size()); + + // 12 days for contact1 + 43 days for contact2 / 2 = 27.5 days + ContactAverageReactivity res = + (ContactAverageReactivity)CollectionUtils.get(results, 0); + + assertEquals(27., res.getResult(), 0.01); + + // result for company BIS using admin mode (no company filtered) + filter = new SamplingFilterImpl(); + filter.setPeriod(period); + results = service.getContactDataInputDateReactivity(filter); + + // 6 days for contact3 / 1 = 6 days + res = (ContactAverageReactivity)CollectionUtils.get(results, 0); + + assertEquals(3, res.getResult(), 0.01); + } +} Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL