blob: e808273db62c9c1e698e7cf699af406a7d1f09a3 [file] [log] [blame]
/********************************************************************************
* Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
********************************************************************************/
package org.eclipse.mdm.filerelease;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.lang.reflect.Field;
import java.util.List;
import org.eclipse.mdm.filerelease.boundary.FileReleaseService;
import org.eclipse.mdm.filerelease.control.FileReleaseException;
import org.eclipse.mdm.filerelease.control.FileReleaseManager;
import org.eclipse.mdm.filerelease.entity.FileRelease;
import org.junit.Test;
public class FileReleaseServiceTest {
@Test
public void testGetReleases() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
List<FileRelease> fileReleases = fileReleaseService.getReleases(FileReleaseManager.FILE_RELEASE_STATE_ORDERED);
assertNotNull("The fileReleases list should not be null.", fileReleases);
int expectedSize = FileReleaseServiceMockHelper.NUM_FILE_REL_IN + FileReleaseServiceMockHelper.NUM_FILE_REL_OUT;
assertEquals("The size of the fileRelease list should be " + expectedSize, expectedSize, fileReleases.size());
fileReleases = fileReleaseService.getReleases("some unknown state");
assertEquals("The size of the fileRelease list should be " + 0, 0, fileReleases.size());
}
@Test
public void testGetRelease() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease fileRelease = fileReleaseService.getRelease(FileReleaseServiceMockHelper.ID_IN_PREFIX + "1");
assertNotNull("The file release shoult not be null", fileRelease);
}
@Test
public void testGetIncommingReleases() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
List<FileRelease> fileReleasesIn = fileReleaseService
.getIncommingReleases(FileReleaseManager.FILE_RELEASE_STATE_ORDERED);
assertNotNull("The fileReleases list should not be null.", fileReleasesIn);
assertEquals("The size of the fileRelease list should be " + FileReleaseServiceMockHelper.NUM_FILE_REL_IN,
FileReleaseServiceMockHelper.NUM_FILE_REL_IN, fileReleasesIn.size());
}
@Test
public void testGetOutgoingReleases() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
List<FileRelease> fileReleasesOut = fileReleaseService
.getOutgoingReleases(FileReleaseManager.FILE_RELEASE_STATE_ORDERED);
assertNotNull("The fileReleases list should not be null.", fileReleasesOut);
assertEquals("The size of the fileRelease list should be " + FileReleaseServiceMockHelper.NUM_FILE_REL_OUT,
FileReleaseServiceMockHelper.NUM_FILE_REL_OUT, fileReleasesOut.size());
}
@Test
public void testCreate() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease request1 = new FileRelease();
request1.sourceName = "MDMENV";
request1.typeName = "TestStep";
request1.id = "123";
request1.format = FileReleaseManager.CONVERTER_FORMAT_PAK2RAW;
request1.orderMessage = "new file release";
request1.validity = 10;
List<FileRelease> fileReleases = fileReleaseService.getReleases(null);
fileReleaseService.create(request1);
FileRelease request2 = new FileRelease();
request2.sourceName = "MDMENV";
request2.typeName = "TestStep";
request2.id = "1234";
request2.format = FileReleaseManager.CONVERTER_FORMAT_PAK2ATFX;
request2.orderMessage = "new file release";
request2.validity = 10;
fileReleaseService.create(request2);
fileReleases = fileReleaseService.getReleases(null);
assertNotNull("The fileReleases list should not be null.", fileReleases);
int expectedSize = FileReleaseServiceMockHelper.NUM_FILE_REL_IN + FileReleaseServiceMockHelper.NUM_FILE_REL_OUT
+ 2;
assertEquals("The size of the fileRelease list should be " + expectedSize, expectedSize, fileReleases.size());
}
@Test(expected = FileReleaseException.class)
public void testCreateWithInvalidFileRelease() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease request = new FileRelease();
request.sourceName = "MDMENV";
request.typeName = "TestStep";
request.id = "123";
request.format = FileReleaseManager.CONVERTER_FORMAT_PAK2RAW;
request.orderMessage = "new file release";
request.validity = 0;
fileReleaseService.create(request);
}
@Test(expected = FileReleaseException.class)
public void testCreateWithUnsuppotedType() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease request = new FileRelease();
request.sourceName = "MDMENV";
request.typeName = "TestStep";
request.id = "123";
request.format = "Some unsupported type";
request.orderMessage = "new file release";
request.validity = 0;
fileReleaseService.create(request);
}
@Test
public void testDelete() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
fileReleaseService.delete(FileReleaseServiceMockHelper.ID_OUT_PREFIX + "1");
List<FileRelease> fileReleases = fileReleaseService.getReleases(FileReleaseManager.FILE_RELEASE_STATE_ORDERED);
assertNotNull("The fileReleases list should not be null.", fileReleases);
int expectedSize = FileReleaseServiceMockHelper.NUM_FILE_REL_IN + FileReleaseServiceMockHelper.NUM_FILE_REL_OUT
- 1;
assertEquals("The size of the fileRelease list should be " + expectedSize, expectedSize, fileReleases.size());
}
@Test
public void testApprove() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease release2Approve = new FileRelease();
release2Approve.identifier = FileReleaseServiceMockHelper.ID_IN_PREFIX + "1";
release2Approve.state = FileReleaseManager.FILE_RELEASE_STATE_APPROVED;
fileReleaseService.approve(release2Approve);
}
@Test
public void testReject() throws Exception {
FileReleaseService fileReleaseService = createMockedService();
FileRelease release2Reject = new FileRelease();
release2Reject.identifier = FileReleaseServiceMockHelper.ID_IN_PREFIX + "1";
release2Reject.state = FileReleaseManager.FILE_RELEASE_STATE_REJECTED;
release2Reject.rejectMessage = "reject message";
fileReleaseService.reject(release2Reject);
FileRelease fileRelease = fileReleaseService.getRelease(FileReleaseServiceMockHelper.ID_IN_PREFIX + "1");
assertNotNull("FileRelease should not be null.", fileRelease);
assertEquals("FileRelease state should be " + FileReleaseManager.FILE_RELEASE_STATE_REJECTED, fileRelease.state,
FileReleaseManager.FILE_RELEASE_STATE_REJECTED);
}
private FileReleaseService createMockedService() throws Exception {
FileReleaseService fileReleaseService = new FileReleaseService();
Field fileReleaseManagerField = fileReleaseService.getClass().getDeclaredField("manager");
fileReleaseManagerField.setAccessible(true);
fileReleaseManagerField.set(fileReleaseService, FileReleaseServiceMockHelper.createFileReleaseManagerMock());
fileReleaseManagerField.setAccessible(false);
Field connectorServiceField = fileReleaseService.getClass().getDeclaredField("connectorService");
connectorServiceField.setAccessible(true);
connectorServiceField.set(fileReleaseService, FileReleaseServiceMockHelper.createConnectorServiceMock());
connectorServiceField.setAccessible(false);
Field converterField = fileReleaseService.getClass().getDeclaredField("converter");
converterField.setAccessible(true);
converterField.set(fileReleaseService, FileReleaseServiceMockHelper.createFileConvertJobManagerMock());
converterField.setAccessible(false);
Field targetDirectoryPathField = fileReleaseService.getClass().getDeclaredField("targetDirectoryPath");
targetDirectoryPathField.setAccessible(true);
targetDirectoryPathField.set(fileReleaseService, System.getProperty("java.io.tmpdir"));
targetDirectoryPathField.setAccessible(false);
return fileReleaseService;
}
}