/* * This file is part of LibrePlan * * Copyright (C) 2013 St. Antoniusziekenhuis * * 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 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 . */ package importers; import static org.junit.Assert.assertTrue; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Properties; import org.joda.time.LocalDate; import org.junit.Before; import org.junit.Test; import org.libreplan.importers.ExportTimesheetsToTim; import org.libreplan.importers.TimSoapClient; import org.libreplan.importers.tim.Duration; import org.libreplan.importers.tim.Person; import org.libreplan.importers.tim.Product; import org.libreplan.importers.tim.RegistrationDate; import org.libreplan.importers.tim.TimOptions; import org.libreplan.importers.tim.TimeRegistration; import org.libreplan.importers.tim.TimeRegistrationRequest; import org.libreplan.importers.tim.TimeRegistrationResponse; /** * Test for {@link ExportTimesheetsToTim} * * @author Miciele Ghiorghis */ public class ExportTimesheetsToTimTest { private Properties properties = null; @Before public void loadProperties() throws FileNotFoundException, IOException { String filename = System.getProperty("user.dir") + "/../scripts/tim-connector/tim-conn.properties"; properties = new Properties(); properties.load(new FileInputStream(filename)); } private TimeRegistration createTimeRegistration(String name, String productCode, LocalDate localDate, Double hours) { Person person = new Person(); // person.setEmailAddress("j.baten@antoniusziekenhuis.nl"); person.setName(name); // person.setNetworkName("j.baten"); person.setOptions(TimOptions.UPDATE_OR_INSERT); Product product = new Product(); product.setOptions(TimOptions.UPDATE_OR_INSERT); product.setCode(productCode); RegistrationDate date = new RegistrationDate(); date.setOptions(TimOptions.UPDATE_OR_INSERT); date.setDate(localDate); Duration duration = new Duration(); duration.setOptions(TimOptions.DECIMAL); duration.setDuration(hours); TimeRegistration timeRegistration = new TimeRegistration(); timeRegistration.setPerson(person); timeRegistration.setProduct(product); timeRegistration.setRegistrationDate(date); timeRegistration.setDuration(duration); return timeRegistration; } @Test public void testExporttTimeRegistrationWith1Item() { List timeRegistrations = new ArrayList(); TimeRegistration timeRegistration = createTimeRegistration( "Baten, Jeroen", "5160", new LocalDate().minusDays(1), 9.00); timeRegistrations.add(timeRegistration); TimeRegistrationRequest timeRegistrationRequest = new TimeRegistrationRequest(); timeRegistrationRequest.setTimeRegistrations(timeRegistrations); TimeRegistrationResponse timeRegistrationResponse = TimSoapClient .sendRequestReceiveResponse(properties.getProperty("url"), properties.getProperty("username"), properties.getProperty("password"), timeRegistrationRequest, TimeRegistrationResponse.class); assertTrue(!timeRegistrationResponse.getRefs().isEmpty()); } @Test public void testExportTimeRegistrationWith2Items() { List timeRegistrations = new ArrayList(); TimeRegistration timeRegistration1 = createTimeRegistration( "Baten, Jeroen", "5160", new LocalDate(), 8.00); timeRegistrations.add(timeRegistration1); TimeRegistration timeRegistration2 = createTimeRegistration( "Baten, Jeroen", "5160", new LocalDate(), 9.00); timeRegistrations.add(timeRegistration2); TimeRegistrationRequest timeRegistrationRequest = new TimeRegistrationRequest(); timeRegistrationRequest.setTimeRegistrations(timeRegistrations); TimeRegistrationResponse timeRegistrationResponse = TimSoapClient .sendRequestReceiveResponse(properties.getProperty("url"), properties.getProperty("username"), properties.getProperty("password"), timeRegistrationRequest, TimeRegistrationResponse.class); assertTrue(!timeRegistrationResponse.getRefs().isEmpty()); } }