Update CXF.
Code refactoring. Changes to config files.
This commit is contained in:
parent
f0d69af651
commit
5c7b5d92ef
11 changed files with 388 additions and 411 deletions
4
NEWS.rst
4
NEWS.rst
|
|
@ -42,6 +42,10 @@ Changes
|
|||
* Update Commons Collections
|
||||
* Update Commons Logging
|
||||
|
||||
* Update CXF-transports-http
|
||||
* Update CXF-frontend-jaxrs
|
||||
* Add CXF-rs-client
|
||||
|
||||
* Update MPXJ
|
||||
* Update Bonecp
|
||||
* Update Guava
|
||||
|
|
|
|||
|
|
@ -476,6 +476,10 @@
|
|||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||||
|
|
|
|||
|
|
@ -53,11 +53,6 @@ public class JiraRESTClient {
|
|||
*/
|
||||
public static final String PATH_AUTH_SESSION = "rest/auth/latest/session";
|
||||
|
||||
/**
|
||||
* Path for issue operations in JIRA REST API
|
||||
*/
|
||||
public static final String PATH_ISSUE = "/rest/api/latest/issue/";
|
||||
|
||||
/**
|
||||
* Fields to include in the response of rest/api/latest/search.
|
||||
*/
|
||||
|
|
@ -82,6 +77,7 @@ public class JiraRESTClient {
|
|||
*/
|
||||
public static String getAllLables(String url) {
|
||||
WebClient client = WebClient.create(url).accept(mediaTypes);
|
||||
|
||||
return client.get(String.class);
|
||||
}
|
||||
|
||||
|
|
@ -100,21 +96,23 @@ public class JiraRESTClient {
|
|||
* the query
|
||||
* @return list of jira issues
|
||||
*/
|
||||
public static List<IssueDTO> getIssues(String url, String username,
|
||||
String password, String path, String query) {
|
||||
public static List<IssueDTO> getIssues(String url, String username, String password, String path, String query) {
|
||||
|
||||
WebClient client = createClient(url);
|
||||
|
||||
checkAutherization(client, username, password);
|
||||
|
||||
client.back(true);// Go to baseURI
|
||||
// Go to baseURI
|
||||
client.back(true);
|
||||
|
||||
client.path(path);
|
||||
if (!query.isEmpty()) {
|
||||
|
||||
if ( !query.isEmpty() ) {
|
||||
client.query("jql", query);
|
||||
}
|
||||
|
||||
client.query("maxResults", MAX_RESULTS);
|
||||
client.query("fields",
|
||||
StringUtils.deleteWhitespace(FIELDS_TO_INCLUDE_IN_RESPONSE));
|
||||
client.query("fields", StringUtils.deleteWhitespace(FIELDS_TO_INCLUDE_IN_RESPONSE));
|
||||
|
||||
SearchResultDTO searchResult = client.get(SearchResultDTO.class);
|
||||
|
||||
|
|
@ -133,8 +131,7 @@ public class JiraRESTClient {
|
|||
JacksonJaxbJsonProvider jacksonJaxbJsonProvider = new JacksonJaxbJsonProvider();
|
||||
jacksonJaxbJsonProvider.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
|
||||
return WebClient.create(url,
|
||||
Collections.singletonList(jacksonJaxbJsonProvider)).accept(mediaTypes);
|
||||
return WebClient.create(url, Collections.singletonList(jacksonJaxbJsonProvider)).accept(mediaTypes);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -148,8 +145,7 @@ public class JiraRESTClient {
|
|||
* @param password
|
||||
* login password
|
||||
*/
|
||||
private static void checkAutherization(WebClient client, String login,
|
||||
String password) {
|
||||
private static void checkAutherization(WebClient client, String login, String password) {
|
||||
NaiveTrustProvider.setAlwaysTrust(true);
|
||||
|
||||
client.path(PATH_AUTH_SESSION);
|
||||
|
|
@ -157,7 +153,7 @@ public class JiraRESTClient {
|
|||
Util.addAuthorizationHeader(client, login, password);
|
||||
Response response = client.get();
|
||||
|
||||
if (response.getStatus() != Status.OK.getStatusCode()) {
|
||||
if ( response.getStatus() != Status.OK.getStatusCode() ) {
|
||||
throw new RuntimeException("Authorization failed");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,12 +95,12 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public List<SubcontractedTaskData> getSubcontractedTasks() {
|
||||
List<SubcontractedTaskData> result = subcontractedTaskDataDAO
|
||||
.getAllForMasterScenario();
|
||||
List<SubcontractedTaskData> result = subcontractedTaskDataDAO.getAllForMasterScenario();
|
||||
for (SubcontractedTaskData subcontractedTaskData : result) {
|
||||
forceLoadExternalCompany(subcontractedTaskData);
|
||||
forceLastDeliveryDate(subcontractedTaskData);
|
||||
}
|
||||
|
||||
return sortByState(result);
|
||||
}
|
||||
|
||||
|
|
@ -108,8 +108,7 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
subcontractedTaskData.getLastRequiredDeliverDate();
|
||||
}
|
||||
|
||||
private void forceLoadExternalCompany(
|
||||
SubcontractedTaskData subcontractedTaskData) {
|
||||
private void forceLoadExternalCompany(SubcontractedTaskData subcontractedTaskData) {
|
||||
subcontractedTaskData.getExternalCompany().getName();
|
||||
}
|
||||
|
||||
|
|
@ -118,29 +117,34 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
|
||||
@Override
|
||||
public int compare(SubcontractedTaskData arg0, SubcontractedTaskData arg1) {
|
||||
if((arg0 == null) || (arg0.getState() == null)){
|
||||
if( (arg0 == null) || (arg0.getState() == null) ){
|
||||
return -1;
|
||||
}
|
||||
if((arg1 == null) || (arg1.getState() == null)){
|
||||
|
||||
if( (arg1 == null) || (arg1.getState() == null) ){
|
||||
return 1;
|
||||
}
|
||||
if(arg0.getState().equals(arg1.getState())){
|
||||
return 0;
|
||||
|
||||
if( arg0.getState().equals(arg1.getState()) ){
|
||||
return 0;
|
||||
}
|
||||
if (arg0.getState().equals(
|
||||
SubcontractState.PENDING_INITIAL_SEND)) {
|
||||
|
||||
if ( arg0.getState().equals(SubcontractState.PENDING_INITIAL_SEND) ) {
|
||||
return 1;
|
||||
}
|
||||
if (arg1.getState().equals(
|
||||
SubcontractState.PENDING_INITIAL_SEND)) {
|
||||
return -1;
|
||||
|
||||
if ( arg1.getState().equals(SubcontractState.PENDING_INITIAL_SEND) ) {
|
||||
return -1;
|
||||
}
|
||||
if( arg0.getState().equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE)) {
|
||||
return 1;
|
||||
|
||||
if( arg0.getState().equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE) ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
|
||||
return tasks;
|
||||
}
|
||||
|
||||
|
|
@ -148,42 +152,40 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
@Transactional(readOnly = true)
|
||||
public Order getOrder(SubcontractedTaskData subcontractedTaskData) {
|
||||
Task task = subcontractedTaskData.getTask();
|
||||
OrderElement orderElement = orderDAO.loadOrderAvoidingProxyFor(task
|
||||
.getOrderElement());
|
||||
OrderElement orderElement = orderDAO.loadOrderAvoidingProxyFor(task.getOrderElement());
|
||||
|
||||
return orderElement.getOrder();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void sendToSubcontractor(SubcontractedTaskData subcontractedTaskData)
|
||||
throws ValidationException, ConnectionProblemsException,
|
||||
UnrecoverableErrorServiceException {
|
||||
throws ValidationException, ConnectionProblemsException, UnrecoverableErrorServiceException {
|
||||
|
||||
subcontractedTaskDataDAO.save(subcontractedTaskData);
|
||||
|
||||
SubcontractState currentState = subcontractedTaskData.getState();
|
||||
|
||||
if (currentState.equals(SubcontractState.PENDING_INITIAL_SEND)) {
|
||||
if ( currentState.equals(SubcontractState.PENDING_INITIAL_SEND) ) {
|
||||
subcontractedTaskData.setState(SubcontractState.FAILED_SENT);
|
||||
} else if (currentState
|
||||
.equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE)) {
|
||||
} else if ( currentState.equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE) ) {
|
||||
subcontractedTaskData.setState(SubcontractState.FAILED_UPDATE);
|
||||
}
|
||||
|
||||
if (!subcontractedTaskData.isSendable()) {
|
||||
if ( !subcontractedTaskData.isSendable() ) {
|
||||
throw new RuntimeException("Subcontracted task already sent");
|
||||
}
|
||||
|
||||
if (!subcontractedTaskData.getExternalCompany()
|
||||
.getInteractsWithApplications()) {
|
||||
throw new RuntimeException(
|
||||
"External company has not interaction fields filled");
|
||||
if ( !subcontractedTaskData.getExternalCompany().getInteractsWithApplications() ) {
|
||||
throw new RuntimeException("External company has not interaction fields filled");
|
||||
}
|
||||
|
||||
makeSubcontractRequestRequest(subcontractedTaskData,currentState);
|
||||
|
||||
Date today = new Date();
|
||||
if ((currentState.equals(SubcontractState.PENDING_INITIAL_SEND))
|
||||
|| (currentState.equals(SubcontractState.FAILED_SENT))) {
|
||||
if ( (currentState.equals(SubcontractState.PENDING_INITIAL_SEND)) ||
|
||||
(currentState.equals(SubcontractState.FAILED_SENT)) ) {
|
||||
|
||||
subcontractedTaskData.setSubcontractCommunicationDate(today);
|
||||
}
|
||||
|
||||
|
|
@ -194,27 +196,31 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
}
|
||||
|
||||
private void makeSubcontractRequestRequest(
|
||||
SubcontractedTaskData subcontractedTaskData,
|
||||
SubcontractState currentState) throws ConnectionProblemsException,
|
||||
UnrecoverableErrorServiceException {
|
||||
if (subcontractedTaskData.getState() != null) {
|
||||
if ((currentState.equals(SubcontractState.PENDING_INITIAL_SEND) || (currentState
|
||||
.equals(SubcontractState.FAILED_SENT)))) {
|
||||
SubcontractedTaskData subcontractedTaskData, SubcontractState currentState)
|
||||
throws ConnectionProblemsException, UnrecoverableErrorServiceException {
|
||||
|
||||
if ( subcontractedTaskData.getState() != null ) {
|
||||
|
||||
if ( (currentState.equals(SubcontractState.PENDING_INITIAL_SEND) ||
|
||||
(currentState.equals(SubcontractState.FAILED_SENT))) ) {
|
||||
|
||||
makeSubcontractRequestRequest_InitialSent(subcontractedTaskData);
|
||||
} else if ((currentState
|
||||
.equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE) || currentState
|
||||
.equals(SubcontractState.FAILED_UPDATE))) {
|
||||
|
||||
} else if ( (currentState.equals(SubcontractState.PENDING_UPDATE_DELIVERING_DATE) ||
|
||||
currentState.equals(SubcontractState.FAILED_UPDATE)) ) {
|
||||
|
||||
makeSubcontractRequestRequest_UpdateDeliverDate(subcontractedTaskData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void makeSubcontractRequestRequest_UpdateDeliverDate(SubcontractedTaskData subcontractedTaskData)
|
||||
throws ConnectionProblemsException, UnrecoverableErrorServiceException {
|
||||
UpdateDeliveringDateDTO updateDeliveringDateDTO = SubcontractedTaskDataConverter
|
||||
.toUpdateDeliveringDateDTO(getCompanyCode(), subcontractedTaskData);
|
||||
ExternalCompany externalCompany = subcontractedTaskData
|
||||
.getExternalCompany();
|
||||
throws ConnectionProblemsException, UnrecoverableErrorServiceException {
|
||||
|
||||
UpdateDeliveringDateDTO updateDeliveringDateDTO =
|
||||
SubcontractedTaskDataConverter.toUpdateDeliveringDateDTO(getCompanyCode(), subcontractedTaskData);
|
||||
|
||||
ExternalCompany externalCompany = subcontractedTaskData.getExternalCompany();
|
||||
|
||||
NaiveTrustProvider.setAlwaysTrust(true);
|
||||
|
||||
|
|
@ -222,31 +228,30 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
WebClient client = WebClient.create(externalCompany.getAppURI());
|
||||
client.path("ws/rest/subcontracting/subcontract/update");
|
||||
|
||||
Util.addAuthorizationHeader(client,
|
||||
externalCompany.getOurCompanyLogin(),
|
||||
externalCompany.getOurCompanyPassword());
|
||||
Util.addAuthorizationHeader(
|
||||
client, externalCompany.getOurCompanyLogin(), externalCompany.getOurCompanyPassword());
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = client
|
||||
.post(updateDeliveringDateDTO,
|
||||
InstanceConstraintViolationsListDTO.class);
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
client.post(updateDeliveringDateDTO, InstanceConstraintViolationsListDTO.class);
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = instanceConstraintViolationsListDTO.instanceConstraintViolationsList;
|
||||
if ((instanceConstraintViolationsList != null)
|
||||
&& (!instanceConstraintViolationsList.isEmpty())) {
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList;
|
||||
|
||||
if ( (instanceConstraintViolationsList != null) && (!instanceConstraintViolationsList.isEmpty()) ) {
|
||||
String message = "";
|
||||
|
||||
for (ConstraintViolationDTO constraintViolationDTO : instanceConstraintViolationsList
|
||||
.get(0).constraintViolations) {
|
||||
message += constraintViolationDTO.toString() + "\n";
|
||||
for (ConstraintViolationDTO current : instanceConstraintViolationsList.get(0).constraintViolations) {
|
||||
message += current.toString() + "\n";
|
||||
}
|
||||
|
||||
throw new UnrecoverableErrorServiceException(message);
|
||||
}
|
||||
|
||||
} catch (WebApplicationException e) {
|
||||
LOG.error("Problems connecting with subcontractor web service", e);
|
||||
|
||||
String message = _("Problems connecting with subcontractor web service");
|
||||
if (e.getMessage() != null) {
|
||||
if ( e.getMessage() != null ) {
|
||||
message += ". " + _("Error: {0}", e.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -254,13 +259,12 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
}
|
||||
}
|
||||
|
||||
private void makeSubcontractRequestRequest_InitialSent(
|
||||
SubcontractedTaskData subcontractedTaskData)
|
||||
private void makeSubcontractRequestRequest_InitialSent(SubcontractedTaskData subcontractedTaskData)
|
||||
throws ConnectionProblemsException, UnrecoverableErrorServiceException {
|
||||
|
||||
SubcontractedTaskDataDTO subcontractedTaskDataDTO = getSubcontractedTaskData(subcontractedTaskData);
|
||||
|
||||
ExternalCompany externalCompany = subcontractedTaskData
|
||||
.getExternalCompany();
|
||||
ExternalCompany externalCompany = subcontractedTaskData.getExternalCompany();
|
||||
|
||||
NaiveTrustProvider.setAlwaysTrust(true);
|
||||
|
||||
|
|
@ -269,30 +273,30 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
|
||||
client.path("ws/rest/subcontracting/subcontract/create");
|
||||
|
||||
Util.addAuthorizationHeader(client, externalCompany
|
||||
.getOurCompanyLogin(), externalCompany
|
||||
.getOurCompanyPassword());
|
||||
Util.addAuthorizationHeader(
|
||||
client, externalCompany.getOurCompanyLogin(), externalCompany.getOurCompanyPassword());
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = client
|
||||
.post(subcontractedTaskDataDTO,
|
||||
InstanceConstraintViolationsListDTO.class);
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
client.post(subcontractedTaskDataDTO, InstanceConstraintViolationsListDTO.class);
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = instanceConstraintViolationsListDTO.instanceConstraintViolationsList;
|
||||
if ((instanceConstraintViolationsList != null)
|
||||
&& (!instanceConstraintViolationsList.isEmpty())) {
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList;
|
||||
|
||||
if ( (instanceConstraintViolationsList != null) && (!instanceConstraintViolationsList.isEmpty()) ) {
|
||||
String message = "";
|
||||
|
||||
for (ConstraintViolationDTO constraintViolationDTO : instanceConstraintViolationsList.get(0).constraintViolations) {
|
||||
message += constraintViolationDTO.toString() + "\n";
|
||||
for (ConstraintViolationDTO current : instanceConstraintViolationsList.get(0).constraintViolations) {
|
||||
message += current.toString() + "\n";
|
||||
}
|
||||
|
||||
throw new UnrecoverableErrorServiceException(message);
|
||||
}
|
||||
|
||||
} catch (WebApplicationException e) {
|
||||
LOG.error("Problems connecting with subcontractor web service", e);
|
||||
|
||||
String message = _("Problems connecting with subcontractor web service");
|
||||
if (e.getMessage() != null) {
|
||||
if ( e.getMessage() != null ) {
|
||||
message += ". " + _("Error: {0}", e.getMessage());
|
||||
}
|
||||
|
||||
|
|
@ -300,65 +304,58 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
}
|
||||
}
|
||||
|
||||
private SubcontractedTaskDataDTO getSubcontractedTaskData(
|
||||
SubcontractedTaskData subcontractedTaskData) {
|
||||
return SubcontractedTaskDataConverter.toDTO(getCompanyCode(),
|
||||
subcontractedTaskData, getOrderElement(subcontractedTaskData));
|
||||
private SubcontractedTaskDataDTO getSubcontractedTaskData(SubcontractedTaskData subcontractedTaskData) {
|
||||
return SubcontractedTaskDataConverter.toDTO(
|
||||
getCompanyCode(), subcontractedTaskData, getOrderElement(subcontractedTaskData));
|
||||
}
|
||||
|
||||
private String getCompanyCode() {
|
||||
return configurationDAO.getConfiguration().getCompanyCode();
|
||||
}
|
||||
|
||||
private OrderElementDTO getOrderElement(
|
||||
SubcontractedTaskData subcontractedTaskData) {
|
||||
private OrderElementDTO getOrderElement(SubcontractedTaskData subcontractedTaskData) {
|
||||
OrderElement orderElement;
|
||||
try {
|
||||
orderElement = orderElementDAO.find(subcontractedTaskData.getTask()
|
||||
.getOrderElement().getId());
|
||||
orderElement = orderElementDAO.find(subcontractedTaskData.getTask().getOrderElement().getId());
|
||||
} catch (InstanceNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
if (subcontractedTaskData.isNodeWithoutChildrenExported()) {
|
||||
if ( subcontractedTaskData.isNodeWithoutChildrenExported() ) {
|
||||
orderElement = orderElement.calculateOrderLineForSubcontract();
|
||||
}
|
||||
|
||||
OrderElementDTO orderElementDTO = OrderElementConverter.toDTO(
|
||||
orderElement,
|
||||
getConfiguration(subcontractedTaskData));
|
||||
overrideDateInformationForRootNode(orderElementDTO,
|
||||
subcontractedTaskData.getTask());
|
||||
OrderElementDTO orderElementDTO =
|
||||
OrderElementConverter.toDTO(orderElement, getConfiguration(subcontractedTaskData));
|
||||
|
||||
overrideDateInformationForRootNode(orderElementDTO, subcontractedTaskData.getTask());
|
||||
|
||||
return orderElementDTO;
|
||||
}
|
||||
|
||||
private void overrideDateInformationForRootNode(
|
||||
OrderElementDTO orderElementDTO, Task task) {
|
||||
orderElementDTO.initDate = DateConverter.toXMLGregorianCalendar(task
|
||||
.getStartDate());
|
||||
orderElementDTO.deadline = DateConverter.toXMLGregorianCalendar(task
|
||||
.getEndDate());
|
||||
private void overrideDateInformationForRootNode(OrderElementDTO orderElementDTO, Task task) {
|
||||
orderElementDTO.initDate = DateConverter.toXMLGregorianCalendar(task.getStartDate());
|
||||
orderElementDTO.deadline = DateConverter.toXMLGregorianCalendar(task.getEndDate());
|
||||
}
|
||||
|
||||
private ConfigurationOrderElementConverter getConfiguration(
|
||||
SubcontractedTaskData subcontractedTaskData) {
|
||||
private ConfigurationOrderElementConverter getConfiguration(SubcontractedTaskData subcontractedTaskData) {
|
||||
// Never export criterions and advances to subcontract
|
||||
boolean isCriterionsExported = false;
|
||||
boolean isAdvancesExported = false;
|
||||
|
||||
return ConfigurationOrderElementConverter.create(subcontractedTaskData
|
||||
.isLabelsExported(), subcontractedTaskData
|
||||
.isMaterialAssignmentsExported(), isAdvancesExported,
|
||||
return ConfigurationOrderElementConverter.create(
|
||||
subcontractedTaskData.isLabelsExported(),
|
||||
subcontractedTaskData.isMaterialAssignmentsExported(),
|
||||
false,
|
||||
subcontractedTaskData.isHoursGroupsExported(),
|
||||
isCriterionsExported);
|
||||
false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public String exportXML(SubcontractedTaskData subcontractedTaskData) {
|
||||
SubcontractState currentState = subcontractedTaskData.getState();
|
||||
if ((currentState.equals(SubcontractState.PENDING_INITIAL_SEND) || (currentState
|
||||
.equals(SubcontractState.FAILED_SENT)))) {
|
||||
|
||||
if ( (currentState.equals(SubcontractState.PENDING_INITIAL_SEND) ||
|
||||
(currentState.equals(SubcontractState.FAILED_SENT))) ) {
|
||||
|
||||
return exportXML_CreateSubcontractor(subcontractedTaskData);
|
||||
} else {
|
||||
return exportXML_UpdateSubcontractor(subcontractedTaskData);
|
||||
|
|
@ -370,8 +367,7 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
|
||||
StringWriter xml = new StringWriter();
|
||||
try {
|
||||
JAXBContext jaxbContext = JAXBContext
|
||||
.newInstance(SubcontractedTaskDataDTO.class);
|
||||
JAXBContext jaxbContext = JAXBContext.newInstance(SubcontractedTaskDataDTO.class);
|
||||
Marshaller marshaller = jaxbContext.createMarshaller();
|
||||
marshaller.marshal(subcontractedTaskDataDTO, xml);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -383,13 +379,13 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel {
|
|||
|
||||
public String exportXML_UpdateSubcontractor(SubcontractedTaskData subcontractedTaskData){
|
||||
subcontractedTaskDataDAO.reattachUnmodifiedEntity(subcontractedTaskData);
|
||||
UpdateDeliveringDateDTO updateDeliveringDateDTO = SubcontractedTaskDataConverter
|
||||
.toUpdateDeliveringDateDTO(getCompanyCode(), subcontractedTaskData);
|
||||
|
||||
UpdateDeliveringDateDTO updateDeliveringDateDTO =
|
||||
SubcontractedTaskDataConverter.toUpdateDeliveringDateDTO(getCompanyCode(), subcontractedTaskData);
|
||||
|
||||
StringWriter xml = new StringWriter();
|
||||
try {
|
||||
JAXBContext jaxbContext = JAXBContext
|
||||
.newInstance(UpdateDeliveringDateDTO.class);
|
||||
JAXBContext jaxbContext = JAXBContext.newInstance(UpdateDeliveringDateDTO.class);
|
||||
Marshaller marshaller = jaxbContext.createMarshaller();
|
||||
marshaller.marshal(updateDeliveringDateDTO, xml);
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -30,26 +30,25 @@ package org.libreplan.ws.common.impl;
|
|||
public class ConfigurationOrderElementConverter {
|
||||
|
||||
public static ConfigurationOrderElementConverter create(boolean labels,
|
||||
boolean materialAssignments, boolean advanceMeasurements,
|
||||
boolean hoursGroups, boolean criterionRequirements) {
|
||||
return new ConfigurationOrderElementConverter(labels,
|
||||
materialAssignments, advanceMeasurements, hoursGroups,
|
||||
criterionRequirements);
|
||||
boolean materialAssignments,
|
||||
boolean advanceMeasurements,
|
||||
boolean hoursGroups,
|
||||
boolean criterionRequirements) {
|
||||
|
||||
return new ConfigurationOrderElementConverter(
|
||||
labels, materialAssignments, advanceMeasurements, hoursGroups, criterionRequirements);
|
||||
}
|
||||
|
||||
public static ConfigurationOrderElementConverter all() {
|
||||
return new ConfigurationOrderElementConverter(true, true, true, true,
|
||||
true);
|
||||
return new ConfigurationOrderElementConverter(true, true, true, true, true);
|
||||
}
|
||||
|
||||
public static ConfigurationOrderElementConverter none() {
|
||||
return new ConfigurationOrderElementConverter(false, false, false,
|
||||
false, false);
|
||||
return new ConfigurationOrderElementConverter(false, false, false, false, false);
|
||||
}
|
||||
|
||||
public static ConfigurationOrderElementConverter noAdvanceMeasurements() {
|
||||
return new ConfigurationOrderElementConverter(true, true, false, true,
|
||||
true);
|
||||
return new ConfigurationOrderElementConverter(true, true, false, true, true);
|
||||
}
|
||||
|
||||
private boolean labels;
|
||||
|
|
@ -59,8 +58,10 @@ public class ConfigurationOrderElementConverter {
|
|||
private boolean criterionRequirements;
|
||||
|
||||
private ConfigurationOrderElementConverter(boolean labels,
|
||||
boolean materialAssignments, boolean advanceMeasurements,
|
||||
boolean hoursGroups, boolean criterionRequirements) {
|
||||
boolean materialAssignments,
|
||||
boolean advanceMeasurements,
|
||||
boolean hoursGroups,
|
||||
boolean criterionRequirements) {
|
||||
this.labels = labels;
|
||||
this.materialAssignments = materialAssignments;
|
||||
this.advanceMeasurements = advanceMeasurements;
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@
|
|||
|
||||
<!-- CXF -->
|
||||
<import resource="classpath:META-INF/cxf/cxf.xml" />
|
||||
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
|
||||
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
|
||||
|
||||
<jaxrs:server id="rest" address="/">
|
||||
|
|
|
|||
|
|
@ -193,14 +193,16 @@
|
|||
p:passwordEncoderService-ref="dbPasswordEncoderService">
|
||||
</beans:bean>
|
||||
|
||||
<beans:bean id="authenticationProvider" class="org.libreplan.web.users.services.AuthenticationProviderLoggingDecorator">
|
||||
<beans:property name="decoratedProvider" ref="realAuthenticationProvider"></beans:property>
|
||||
<beans:bean id="authenticationProvider"
|
||||
class="org.libreplan.web.users.services.AuthenticationProviderLoggingDecorator">
|
||||
|
||||
<beans:property name="decoratedProvider" ref="realAuthenticationProvider"/>
|
||||
|
||||
</beans:bean>
|
||||
|
||||
<!-- This bean is used to implement UserDetailsService with LDAP authentication
|
||||
Provider. -->
|
||||
<beans:bean id="ldapUserDetailsService"
|
||||
class="org.libreplan.web.users.services.LDAPUserDetailsService" />
|
||||
<beans:bean id="ldapUserDetailsService" class="org.libreplan.web.users.services.LDAPUserDetailsService" />
|
||||
|
||||
<authentication-manager>
|
||||
<authentication-provider ref="authenticationProvider"/>
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app id="WebApp_ID" version="2.4"
|
||||
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
|
||||
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
||||
<display-name>libreplan-webapp</display-name>
|
||||
|
||||
<!--
|
||||
|
|
@ -17,7 +16,6 @@
|
|||
<param-value>
|
||||
classpath*:/libreplan-business-spring-config.xml
|
||||
classpath:/libreplan-webapp-spring-config.xml
|
||||
classpath*:/libreplan-override-spring-config.xml
|
||||
classpath:/libreplan-webapp-spring-security-config.xml
|
||||
</param-value>
|
||||
</context-param>
|
||||
|
|
@ -70,7 +68,6 @@
|
|||
</listener>
|
||||
|
||||
<!-- Spring listeners -->
|
||||
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
|
|
@ -78,7 +75,6 @@
|
|||
<listener-class>
|
||||
org.springframework.web.context.request.RequestContextListener</listener-class>
|
||||
</listener>
|
||||
|
||||
<!-- end Spring listeners -->
|
||||
|
||||
<!-- Loads all IDataBootstrap and executes them -->
|
||||
|
|
|
|||
|
|
@ -22,13 +22,12 @@ package org.libreplan.importers;
|
|||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.ProcessingException;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.junit.Before;
|
||||
|
|
@ -46,10 +45,9 @@ public class JiraRESTClientTest {
|
|||
private Properties properties = null;
|
||||
|
||||
@Before
|
||||
public void loadProperties() throws FileNotFoundException, IOException {
|
||||
public void loadProperties() throws IOException {
|
||||
|
||||
String filename = System.getProperty("user.dir")
|
||||
+ "/../scripts/jira-connector/jira-conn.properties";
|
||||
String filename = System.getProperty("user.dir") + "/../scripts/jira-connector/jira-conn.properties";
|
||||
|
||||
properties = new Properties();
|
||||
properties.load(new FileInputStream(filename));
|
||||
|
|
@ -63,13 +61,13 @@ public class JiraRESTClientTest {
|
|||
@Test
|
||||
@Ignore("Only working if you have a JIRA server configured")
|
||||
public void testGetAllLablesFromValidLabelUrl() {
|
||||
String labels = JiraRESTClient.getAllLables(properties
|
||||
.getProperty("label_url"));
|
||||
String labels = JiraRESTClient.getAllLables(properties.getProperty("label_url"));
|
||||
List<String> result = Arrays.asList(StringUtils.split(labels, ","));
|
||||
|
||||
assertTrue(result.size() > 0);
|
||||
}
|
||||
|
||||
@Test(expected = WebApplicationException.class)
|
||||
@Test(expected = ProcessingException.class)
|
||||
public void testGetAllLablesFromInValidLabelUrl() {
|
||||
JiraRESTClient.getAllLables("");
|
||||
}
|
||||
|
|
@ -82,12 +80,14 @@ public class JiraRESTClientTest {
|
|||
properties.getProperty("username"),
|
||||
properties.getProperty("password"), JiraRESTClient.PATH_SEARCH,
|
||||
getJiraLabel(properties.getProperty("label")));
|
||||
|
||||
assertTrue(issues.size() > 0);
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
public void testGetIssuesForValidLabelButUnAuthorizedUser() {
|
||||
JiraRESTClient.getIssues(properties.getProperty("url"), "", "",
|
||||
JiraRESTClient.getIssues(
|
||||
properties.getProperty("url"), "", "",
|
||||
JiraRESTClient.PATH_SEARCH,
|
||||
getJiraLabel(properties.getProperty("label")));
|
||||
}
|
||||
|
|
@ -98,8 +98,8 @@ public class JiraRESTClientTest {
|
|||
List<IssueDTO> issues = JiraRESTClient.getIssues(
|
||||
properties.getProperty("url"),
|
||||
properties.getProperty("username"),
|
||||
properties.getProperty("password"), JiraRESTClient.PATH_SEARCH,
|
||||
"");
|
||||
properties.getProperty("password"), JiraRESTClient.PATH_SEARCH, "");
|
||||
|
||||
assertTrue(issues.size() > 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ import static org.libreplan.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CO
|
|||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
|
|
@ -98,8 +97,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
* @author Vova Perebykivskiy <vova@libreplan-enterprise.com>
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE,
|
||||
WEBAPP_SPRING_CONFIG_FILE, WEBAPP_SPRING_CONFIG_TEST_FILE,
|
||||
@ContextConfiguration(locations = {
|
||||
BUSINESS_SPRING_CONFIG_FILE,
|
||||
|
||||
WEBAPP_SPRING_CONFIG_FILE,
|
||||
WEBAPP_SPRING_CONFIG_TEST_FILE,
|
||||
|
||||
WEBAPP_SPRING_SECURITY_CONFIG_FILE,
|
||||
WEBAPP_SPRING_SECURITY_CONFIG_TEST_FILE })
|
||||
public class WorkReportServiceTest {
|
||||
|
|
@ -195,17 +198,16 @@ public class WorkReportServiceTest {
|
|||
}
|
||||
|
||||
private static <T extends IntegrationEntity> T findOrCreate(
|
||||
IIntegrationEntityDAO<? super T> dao, Class<T> klass,
|
||||
String code, Object... constructorArguments) {
|
||||
if (dao.existsByCode(code)) {
|
||||
IIntegrationEntityDAO<? super T> dao, Class<T> klass, String code, Object... constructorArguments) {
|
||||
|
||||
if ( dao.existsByCode(code) ) {
|
||||
return klass.cast(dao.findExistingEntityByCode(code));
|
||||
} else {
|
||||
try {
|
||||
Method create = klass.getMethod("create",
|
||||
asClasses(constructorArguments));
|
||||
T result = klass
|
||||
.cast(create.invoke(null, constructorArguments));
|
||||
Method create = klass.getMethod("create", asClasses(constructorArguments));
|
||||
T result = klass.cast(create.invoke(null, constructorArguments));
|
||||
result.setCode(code);
|
||||
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
@ -218,33 +220,30 @@ public class WorkReportServiceTest {
|
|||
for (int i = 0; i < result.length; i++) {
|
||||
result[i] = constructorArguments[i].getClass();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void givenWorkerStored() {
|
||||
Worker worker = findOrCreate(dao, Worker.class, resourceCode,
|
||||
"Firstname", "Surname", resourceCode);
|
||||
if (worker.isNewObject()) {
|
||||
Worker worker = findOrCreate(dao, Worker.class, resourceCode, "Firstname", "Surname", resourceCode);
|
||||
if ( worker.isNewObject() ) {
|
||||
dao.save(worker);
|
||||
}
|
||||
}
|
||||
|
||||
private void givenOrderLineStored() {
|
||||
OrderLine orderLine = findOrCreate(orderElementDAO, OrderLine.class,
|
||||
orderElementCode);
|
||||
if (orderLine.isNewObject()) {
|
||||
OrderLine orderLine = findOrCreate(orderElementDAO, OrderLine.class, orderElementCode);
|
||||
if ( orderLine.isNewObject() ) {
|
||||
orderLine.setName("order-line-name" + UUID.randomUUID());
|
||||
orderElementDAO.save(orderLine);
|
||||
}
|
||||
}
|
||||
|
||||
private void createAPairOfLabelTypes() {
|
||||
LabelType labelType_A = findOrCreate(labelTypeDAO, LabelType.class,
|
||||
labelTypeA, labelTypeA, labelTypeA);
|
||||
LabelType labelType_B = findOrCreate(labelTypeDAO, LabelType.class,
|
||||
labelTypeB, labelTypeB, labelTypeB);
|
||||
LabelType labelType_A = findOrCreate(labelTypeDAO, LabelType.class, labelTypeA, labelTypeA, labelTypeA);
|
||||
LabelType labelType_B = findOrCreate(labelTypeDAO, LabelType.class, labelTypeB, labelTypeB, labelTypeB);
|
||||
|
||||
if (labelType_A.isNewObject()) {
|
||||
if ( labelType_A.isNewObject() ) {
|
||||
Label label_A1 = Label.create(labelA1, labelA1);
|
||||
Label label_A2 = Label.create(labelA2, labelA2);
|
||||
Label label_B1 = Label.create(labelB1, labelB1);
|
||||
|
|
@ -259,13 +258,11 @@ public class WorkReportServiceTest {
|
|||
}
|
||||
|
||||
private void givenTypeOfWorkHoursStored() {
|
||||
TypeOfWorkHours typeOfWorkHours = findOrCreate(typeOfWorkHoursDAO,
|
||||
TypeOfWorkHours.class, typeOfWorkHoursCode);
|
||||
TypeOfWorkHours typeOfWorkHours = findOrCreate(typeOfWorkHoursDAO, TypeOfWorkHours.class, typeOfWorkHoursCode);
|
||||
|
||||
if (typeOfWorkHours.isNewObject()) {
|
||||
if ( typeOfWorkHours.isNewObject() ) {
|
||||
typeOfWorkHours.setCode(typeOfWorkHoursCode);
|
||||
typeOfWorkHours.setName("type-of-work-hours-name-"
|
||||
+ UUID.randomUUID());
|
||||
typeOfWorkHours.setName("type-of-work-hours-name-" + UUID.randomUUID());
|
||||
typeOfWorkHours.setDefaultPrice(BigDecimal.TEN);
|
||||
|
||||
typeOfWorkHoursDAO.save(typeOfWorkHours);
|
||||
|
|
@ -273,60 +270,48 @@ public class WorkReportServiceTest {
|
|||
}
|
||||
|
||||
private void givenWorkReportTypeStored() {
|
||||
WorkReportType t = givenWorkReportTypeStored(false, false, false, null,
|
||||
workReportTypeCode);
|
||||
WorkReportType t = givenWorkReportTypeStored(false, false, false, null, workReportTypeCode);
|
||||
workReportTypeDAO.save(t);
|
||||
}
|
||||
|
||||
private void givenWorkReportTypeStored2() {
|
||||
WorkReportType t = givenWorkReportTypeStored(true, false, false, null,
|
||||
workReportTypeCode2);
|
||||
WorkReportType t = givenWorkReportTypeStored(true, false, false, null, workReportTypeCode2);
|
||||
workReportTypeDAO.save(t);
|
||||
}
|
||||
|
||||
private void givenWorkReportTypeStored3() {
|
||||
WorkReportType t = givenWorkReportTypeStored(false, false, false,
|
||||
HoursManagementEnum.HOURS_CALCULATED_BY_CLOCK,
|
||||
workReportTypeCode3);
|
||||
HoursManagementEnum.HOURS_CALCULATED_BY_CLOCK, workReportTypeCode3);
|
||||
|
||||
workReportTypeDAO.save(t);
|
||||
}
|
||||
|
||||
private void givenWorkReportTypeStored4() {
|
||||
WorkReportType type = givenWorkReportTypeStored(false, false, false,
|
||||
null, workReportTypeCode4);
|
||||
WorkReportType type = givenWorkReportTypeStored(false, false, false, null, workReportTypeCode4);
|
||||
|
||||
if (type.isNewObject()) {
|
||||
type.addDescriptionFieldToEndHead(DescriptionField.create(field1,
|
||||
10));
|
||||
type.addDescriptionFieldToEndLine(DescriptionField.create(field2,
|
||||
10));
|
||||
if ( type.isNewObject() ) {
|
||||
type.addDescriptionFieldToEndHead(DescriptionField.create(field1, 10));
|
||||
type.addDescriptionFieldToEndLine(DescriptionField.create(field2, 10));
|
||||
|
||||
workReportTypeDAO.save(type);
|
||||
}
|
||||
}
|
||||
|
||||
private void givenWorkReportTypeStored5() {
|
||||
WorkReportType type = givenWorkReportTypeStored(false, false, false,
|
||||
null, workReportTypeCode5);
|
||||
if (!type.isNewObject()) {
|
||||
WorkReportType type = givenWorkReportTypeStored(false, false, false, null, workReportTypeCode5);
|
||||
if ( !type.isNewObject() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
WorkReportLabelTypeAssigment labelAssigment1 = WorkReportLabelTypeAssigment
|
||||
.create(true);
|
||||
WorkReportLabelTypeAssigment labelAssigment2 = WorkReportLabelTypeAssigment
|
||||
.create(false);
|
||||
WorkReportLabelTypeAssigment labelAssigment1 = WorkReportLabelTypeAssigment.create(true);
|
||||
WorkReportLabelTypeAssigment labelAssigment2 = WorkReportLabelTypeAssigment.create(false);
|
||||
|
||||
labelAssigment1.setLabelType(labelTypeDAO
|
||||
.findExistingEntityByCode(labelTypeA));
|
||||
labelAssigment1.setDefaultLabel(labelDAO
|
||||
.findExistingEntityByCode(labelA1));
|
||||
labelAssigment1.setLabelType(labelTypeDAO.findExistingEntityByCode(labelTypeA));
|
||||
labelAssigment1.setDefaultLabel(labelDAO.findExistingEntityByCode(labelA1));
|
||||
labelAssigment1.setPositionNumber(0);
|
||||
|
||||
labelAssigment2.setLabelType(labelTypeDAO
|
||||
.findExistingEntityByCode(labelTypeB));
|
||||
labelAssigment2.setDefaultLabel(labelDAO
|
||||
.findExistingEntityByCode(labelB1));
|
||||
labelAssigment2.setLabelType(labelTypeDAO.findExistingEntityByCode(labelTypeB));
|
||||
labelAssigment2.setDefaultLabel(labelDAO.findExistingEntityByCode(labelB1));
|
||||
labelAssigment2.setPositionNumber(0);
|
||||
|
||||
type.addLabelAssigmentToEndHead(labelAssigment1);
|
||||
|
|
@ -336,12 +321,13 @@ public class WorkReportServiceTest {
|
|||
}
|
||||
|
||||
private WorkReportType givenWorkReportTypeStored(boolean dateShared,
|
||||
boolean orderElementShared, boolean resourceShared,
|
||||
HoursManagementEnum hoursManagement, String workReportTypeCode) {
|
||||
boolean orderElementShared,
|
||||
boolean resourceShared,
|
||||
HoursManagementEnum hoursManagement,
|
||||
String workReportTypeCode) {
|
||||
|
||||
WorkReportType workReportType = findOrCreate(workReportTypeDAO,
|
||||
WorkReportType.class, workReportTypeCode);
|
||||
if (!workReportType.isNewObject()) {
|
||||
WorkReportType workReportType = findOrCreate(workReportTypeDAO, WorkReportType.class, workReportTypeCode);
|
||||
if ( !workReportType.isNewObject() ) {
|
||||
return workReportType;
|
||||
}
|
||||
|
||||
|
|
@ -352,7 +338,7 @@ public class WorkReportServiceTest {
|
|||
workReportType.setOrderElementIsSharedInLines(orderElementShared);
|
||||
workReportType.setResourceIsSharedInLines(resourceShared);
|
||||
|
||||
if (hoursManagement != null) {
|
||||
if ( hoursManagement != null ) {
|
||||
workReportType.setHoursManagement(hoursManagement);
|
||||
}
|
||||
|
||||
|
|
@ -365,8 +351,7 @@ public class WorkReportServiceTest {
|
|||
workReportLineDTO.code = "work-report-line-code-" + UUID.randomUUID();
|
||||
workReportLineDTO.resource = resourceCode;
|
||||
workReportLineDTO.orderElement = orderElementCode;
|
||||
workReportLineDTO.date = DateConverter
|
||||
.toXMLGregorianCalendar(new Date());
|
||||
workReportLineDTO.date = DateConverter.toXMLGregorianCalendar(new Date());
|
||||
workReportLineDTO.typeOfWorkHours = typeOfWorkHoursCode;
|
||||
workReportLineDTO.numHours = "8:15";
|
||||
|
||||
|
|
@ -378,6 +363,7 @@ public class WorkReportServiceTest {
|
|||
workReportDTO.code = "work-report-code-" + UUID.randomUUID();
|
||||
workReportDTO.workReportType = type;
|
||||
workReportDTO.workReportLines.add(createWorkReportLineDTO());
|
||||
|
||||
return workReportDTO;
|
||||
}
|
||||
|
||||
|
|
@ -387,25 +373,23 @@ public class WorkReportServiceTest {
|
|||
// create work report with a work report line
|
||||
WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode5);
|
||||
|
||||
// create invalid description value to add into head and lines.
|
||||
// create invalid description value to add into head and lines
|
||||
LabelReferenceDTO labelDTO1 = new LabelReferenceDTO("codeLabelNoexiste");
|
||||
LabelReferenceDTO labelDTO2 = new LabelReferenceDTO(labelA1);
|
||||
|
||||
// it assigne a label type LabelTypeA, but it should be a label type
|
||||
// LabelTypeB
|
||||
// it assigns a label type LabelTypeA, but it should be a label type LabelTypeB
|
||||
workReportDTO.labels.add(labelDTO1);
|
||||
for (WorkReportLineDTO lineDTO : workReportDTO.workReportLines) {
|
||||
lineDTO.labels.add(labelDTO2);
|
||||
}
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = workReportService
|
||||
.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
workReportService.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
|
||||
// Test
|
||||
assertTrue(instanceConstraintViolationsList.toString(),
|
||||
instanceConstraintViolationsList.size() == 1);
|
||||
assertTrue(instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -418,21 +402,19 @@ public class WorkReportServiceTest {
|
|||
LabelReferenceDTO labelDTO1 = new LabelReferenceDTO(labelA1);
|
||||
LabelReferenceDTO labelDTO2 = new LabelReferenceDTO(labelB1);
|
||||
|
||||
// it assigne a label type LabelTypeA, but it should be a label type
|
||||
// LabelTypeB
|
||||
// it assigns a label type LabelTypeA, but it should be a label type LabelTypeB
|
||||
workReportDTO.labels.add(labelDTO1);
|
||||
for (WorkReportLineDTO lineDTO : workReportDTO.workReportLines) {
|
||||
lineDTO.labels.add(labelDTO2);
|
||||
}
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = workReportService
|
||||
.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
workReportService.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
|
||||
// Test
|
||||
assertTrue(instanceConstraintViolationsList.toString(),
|
||||
instanceConstraintViolationsList.size() == 0);
|
||||
assertTrue(instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -442,27 +424,25 @@ public class WorkReportServiceTest {
|
|||
WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode4);
|
||||
|
||||
// create invalid description value to add into head and lines.
|
||||
DescriptionValueDTO valueDTO1 = new DescriptionValueDTO(field1 + "X",
|
||||
"incorrecto");
|
||||
DescriptionValueDTO valueDTO2 = new DescriptionValueDTO(field2 + "X",
|
||||
"incorrecto");
|
||||
DescriptionValueDTO valueDTO1 = new DescriptionValueDTO(field1 + "X", "incorrecto");
|
||||
DescriptionValueDTO valueDTO2 = new DescriptionValueDTO(field2 + "X", "incorrecto");
|
||||
|
||||
workReportDTO.descriptionValues.add(valueDTO1);
|
||||
for (WorkReportLineDTO lineDTO : workReportDTO.workReportLines) {
|
||||
lineDTO.descriptionValues.add(valueDTO2);
|
||||
}
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = workReportService
|
||||
.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
workReportService.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
|
||||
// Test
|
||||
assertTrue(instanceConstraintViolationsList.toString(),
|
||||
instanceConstraintViolationsList.size() == 1);
|
||||
assertTrue(instanceConstraintViolationsList.get(0).constraintViolations
|
||||
.toString(),
|
||||
instanceConstraintViolationsList.get(0).constraintViolations
|
||||
.size() == 2);
|
||||
assertTrue(instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 1);
|
||||
|
||||
assertTrue(
|
||||
instanceConstraintViolationsList.get(0).constraintViolations.toString(),
|
||||
instanceConstraintViolationsList.get(0).constraintViolations.size() == 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -472,76 +452,71 @@ public class WorkReportServiceTest {
|
|||
WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode4);
|
||||
|
||||
// create invalid description value to add into head and lines.
|
||||
DescriptionValueDTO valueDTO1 = new DescriptionValueDTO(field1,
|
||||
"correcto");
|
||||
DescriptionValueDTO valueDTO2 = new DescriptionValueDTO(field2,
|
||||
"correcto");
|
||||
DescriptionValueDTO valueDTO1 = new DescriptionValueDTO(field1, "correcto");
|
||||
DescriptionValueDTO valueDTO2 = new DescriptionValueDTO(field2, "correcto");
|
||||
workReportDTO.descriptionValues.add(valueDTO1);
|
||||
|
||||
for (WorkReportLineDTO lineDTO : workReportDTO.workReportLines) {
|
||||
lineDTO.descriptionValues.add(valueDTO2);
|
||||
}
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList = workReportService
|
||||
.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
List<InstanceConstraintViolationsDTO> instanceConstraintViolationsList =
|
||||
workReportService.addWorkReports(workReportListDTO).instanceConstraintViolationsList;
|
||||
|
||||
// Test
|
||||
assertTrue(instanceConstraintViolationsList.toString(),
|
||||
instanceConstraintViolationsList.size() == 0);
|
||||
assertTrue(instanceConstraintViolationsList.toString(), instanceConstraintViolationsList.size() == 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importValidWorkReport() {
|
||||
int previous = transactionService
|
||||
.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
int previous = transactionService.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
|
||||
transactionService.runOnTransaction(new IOnTransaction<Void>() {
|
||||
@Override
|
||||
public Void execute() {
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(createWorkReportDTO(workReportTypeCode)));
|
||||
WorkReportListDTO workReportListDTO =
|
||||
new WorkReportListDTO(Collections.singletonList(createWorkReportDTO(workReportTypeCode)));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(0));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(0));
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
List<WorkReport> workReports = transactionService
|
||||
.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport
|
||||
.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
}
|
||||
return list;
|
||||
List<WorkReport> workReports = transactionService.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
});
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous + 1));
|
||||
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous)
|
||||
.getWorkReportLines();
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous).getWorkReportLines();
|
||||
assertThat(workReportLines.size(), equalTo(1));
|
||||
|
||||
assertThat(workReportLines.iterator().next().getEffort(),
|
||||
equalTo(EffortDuration.sum(EffortDuration.hours(8),
|
||||
EffortDuration.minutes(15))));
|
||||
assertThat(
|
||||
workReportLines.iterator().next().getEffort(),
|
||||
equalTo(EffortDuration.sum(EffortDuration.hours(8), EffortDuration.minutes(15))));
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -550,15 +525,16 @@ public class WorkReportServiceTest {
|
|||
public void importInvalidWorkReportWithoutDateAtWorkReportLevel() {
|
||||
int previous = workReportDAO.getAll().size();
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(createWorkReportDTO(workReportTypeCode2)));
|
||||
WorkReportListDTO workReportListDTO =
|
||||
new WorkReportListDTO(Collections.singletonList(createWorkReportDTO(workReportTypeCode2)));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(1));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(1));
|
||||
List<WorkReport> workReports = workReportDAO.getAll();
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous));
|
||||
}
|
||||
|
||||
|
|
@ -571,28 +547,25 @@ public class WorkReportServiceTest {
|
|||
Date date = new LocalDate().toDateTimeAtStartOfDay().toDate();
|
||||
workReportDTO.date = DateConverter.toXMLGregorianCalendar(date);
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(0));
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(0));
|
||||
|
||||
/**
|
||||
* Default code that was before was not working with MySQL
|
||||
* and works perfect with PostgreSQL
|
||||
* For example: List<WorkReport> workReports = workReportDAO.getAll();
|
||||
* was returning 0 but COUNT in DB was 1
|
||||
* Also set workReportLines in WorkReports.hbm.xml has been changed to fetch='join'
|
||||
* Possible reason: Hibernate 4.3.11.Final bug / caching
|
||||
*/
|
||||
* Default code that was before was not working with MySQL
|
||||
* and works perfect with PostgreSQL
|
||||
* For example: List<WorkReport> workReports = workReportDAO.getAll();
|
||||
* was returning 0 but COUNT in DB was 1
|
||||
* Also set workReportLines in WorkReports.hbm.xml has been changed to fetch='join'
|
||||
* Possible reason: Hibernate 4.3.11.Final bug / caching
|
||||
*/
|
||||
|
||||
StatelessSession statelessSession = sessionFactory.openStatelessSession();
|
||||
|
||||
List<WorkReport> workReports = statelessSession.createCriteria(WorkReport.class)
|
||||
.addOrder(Order.asc("code")).list();
|
||||
List workReports = statelessSession.createCriteria(WorkReport.class).addOrder(Order.asc("code")).list();
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous + 1));
|
||||
|
||||
|
|
@ -601,12 +574,11 @@ public class WorkReportServiceTest {
|
|||
|
||||
assertThat(imported.getDate(), equalTo(date));
|
||||
|
||||
List<WorkReportLine> importedLines = new ArrayList<WorkReportLine>(
|
||||
imported.getWorkReportLines());
|
||||
List<WorkReportLine> importedLines = new ArrayList<>(imported.getWorkReportLines());
|
||||
Collections.sort(importedLines);
|
||||
|
||||
List<WorkReportLineDTO> exportedLines = new ArrayList<WorkReportLineDTO>(
|
||||
workReportDTO.workReportLines);
|
||||
List<WorkReportLineDTO> exportedLines = new ArrayList<>(workReportDTO.workReportLines);
|
||||
|
||||
Collections.sort(exportedLines, new Comparator<WorkReportLineDTO>() {
|
||||
@Override
|
||||
public int compare(WorkReportLineDTO o1, WorkReportLineDTO o2) {
|
||||
|
|
@ -622,8 +594,7 @@ public class WorkReportServiceTest {
|
|||
}
|
||||
|
||||
private long asTime(XMLGregorianCalendar date2) {
|
||||
return date2
|
||||
.toGregorianCalendar().getTime().getTime();
|
||||
return date2.toGregorianCalendar().getTime().getTime();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -631,126 +602,115 @@ public class WorkReportServiceTest {
|
|||
public void importInvalidWorkReportCalculatedHours() {
|
||||
int previous = workReportDAO.getAll().size();
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(createWorkReportDTO(workReportTypeCode3)));
|
||||
WorkReportListDTO workReportListDTO =
|
||||
new WorkReportListDTO(Collections.singletonList(createWorkReportDTO(workReportTypeCode3)));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(1));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(1));
|
||||
List<WorkReport> workReports = workReportDAO.getAll();
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importValidWorkReportCalculatedHours() {
|
||||
int previous = transactionService
|
||||
.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
int previous = transactionService.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
|
||||
WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode3);
|
||||
WorkReportLineDTO workReportLineDTO = workReportDTO.workReportLines
|
||||
.iterator().next();
|
||||
WorkReportLineDTO workReportLineDTO = workReportDTO.workReportLines.iterator().next();
|
||||
|
||||
int hours = 12;
|
||||
LocalTime start = new LocalTime(8, 0);
|
||||
LocalTime end = start.plusHours(hours);
|
||||
workReportLineDTO.clockStart = DateConverter
|
||||
.toXMLGregorianCalendar(start);
|
||||
workReportLineDTO.clockFinish = DateConverter
|
||||
.toXMLGregorianCalendar(end);
|
||||
workReportLineDTO.clockStart = DateConverter.toXMLGregorianCalendar(start);
|
||||
workReportLineDTO.clockFinish = DateConverter.toXMLGregorianCalendar(end);
|
||||
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(0));
|
||||
List<WorkReport> workReports = transactionService
|
||||
.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport
|
||||
.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
}
|
||||
return list;
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(0));
|
||||
|
||||
List<WorkReport> workReports = transactionService.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
});
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous + 1));
|
||||
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous)
|
||||
.getWorkReportLines();
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous).getWorkReportLines();
|
||||
|
||||
assertThat(workReportLines.size(), equalTo(1));
|
||||
|
||||
assertThat(workReportLines.iterator().next().getEffort().getHours(),
|
||||
equalTo(hours));
|
||||
assertThat(workReportLines.iterator().next().getEffort().getHours(), equalTo(hours));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void importAndUpdateValidWorkReport() {
|
||||
int previous = transactionService
|
||||
.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
int previous = transactionService.runOnTransaction(new IOnTransaction<Integer>() {
|
||||
@Override
|
||||
public Integer execute() {
|
||||
return workReportDAO.getAll().size();
|
||||
}
|
||||
});
|
||||
|
||||
WorkReportDTO workReportDTO = createWorkReportDTO(workReportTypeCode);
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
WorkReportListDTO workReportListDTO = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO);
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(0));
|
||||
List<WorkReport> workReports = transactionService
|
||||
.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport
|
||||
.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
}
|
||||
return list;
|
||||
InstanceConstraintViolationsListDTO instanceConstraintViolationsListDTO =
|
||||
workReportService.addWorkReports(workReportListDTO);
|
||||
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(0));
|
||||
|
||||
List<WorkReport> workReports = transactionService.runOnTransaction(new IOnTransaction<List<WorkReport>>() {
|
||||
@Override
|
||||
public List<WorkReport> execute() {
|
||||
List<WorkReport> list = workReportDAO.getAll();
|
||||
for (WorkReport workReport : list) {
|
||||
Set<WorkReportLine> workReportLines = workReport.getWorkReportLines();
|
||||
for (WorkReportLine line : workReportLines) {
|
||||
line.getEffort().getHours();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
});
|
||||
|
||||
assertThat(workReports.size(), equalTo(previous + 1));
|
||||
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous)
|
||||
.getWorkReportLines();
|
||||
Set<WorkReportLine> workReportLines = workReports.get(previous).getWorkReportLines();
|
||||
|
||||
assertThat(workReportLines.size(), equalTo(1));
|
||||
|
||||
assertThat(workReportLines.iterator().next().getEffort(),
|
||||
equalTo(EffortDuration.sum(EffortDuration.hours(8),
|
||||
EffortDuration.minutes(15))));
|
||||
assertThat(
|
||||
workReportLines.iterator().next().getEffort(),
|
||||
equalTo(EffortDuration.sum(EffortDuration.hours(8), EffortDuration.minutes(15))));
|
||||
|
||||
workReportDTO.workReportLines.add(createWorkReportLineDTO());
|
||||
WorkReportListDTO workReportListDTO2 = new WorkReportListDTO(Arrays
|
||||
.asList(workReportDTO));
|
||||
instanceConstraintViolationsListDTO = workReportService
|
||||
.addWorkReports(workReportListDTO2);
|
||||
WorkReportListDTO workReportListDTO2 = new WorkReportListDTO(Collections.singletonList(workReportDTO));
|
||||
instanceConstraintViolationsListDTO = workReportService.addWorkReports(workReportListDTO2);
|
||||
|
||||
assertThat(
|
||||
instanceConstraintViolationsListDTO.instanceConstraintViolationsList
|
||||
.size(), equalTo(0));
|
||||
assertThat(instanceConstraintViolationsListDTO.instanceConstraintViolationsList.size(), equalTo(0));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
23
pom.xml
23
pom.xml
|
|
@ -530,7 +530,7 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-transports-http</artifactId>
|
||||
<version>2.2.3</version>
|
||||
<version>3.1.6</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
|
@ -553,7 +553,26 @@
|
|||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
|
||||
<version>2.2.3</version>
|
||||
<version>3.1.6</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-client</artifactId>
|
||||
<version>3.1.6</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue