/*
* 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());
}
}