generated from 2martens/template-service
122 lines
5.6 KiB
Java
122 lines
5.6 KiB
Java
package de.twomartens.oparlservice.service;
|
|
|
|
import de.twomartens.oparlservice.configs.OParlServiceProperties;
|
|
import de.twomartens.oparlservice.entity.internal.System;
|
|
import de.twomartens.oparlservice.repository.SystemRepository;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.time.ZonedDateTime;
|
|
import java.util.List;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
class OParlServiceTest {
|
|
private OParlServiceProperties properties;
|
|
private OParlService service;
|
|
private SystemRepository systemRepository;
|
|
|
|
@BeforeEach
|
|
void setUp() {
|
|
properties = new OParlServiceProperties();
|
|
properties.setUrl("http://localhost");
|
|
systemRepository = mock(SystemRepository.class);
|
|
service = new OParlService(properties, systemRepository);
|
|
}
|
|
|
|
@Test
|
|
void shouldAnnotateSystemWithURLs() {
|
|
System internalSystem = new System(0, "https://creativecommons.org/cc-by",
|
|
"OParl-Schnittstelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), false);
|
|
when(systemRepository.findAll()).thenReturn(List.of(internalSystem));
|
|
|
|
de.twomartens.oparlservice.entity.dto.System result = service.getSystem();
|
|
|
|
assertNotNull(result);
|
|
assertEquals(String.valueOf(0), result.getId());
|
|
assertEquals("https://schema.oparl.org/1.1/Schema", result.getType());
|
|
assertEquals("https://schema.oparl.org/1.1/", result.getOparlVersion());
|
|
assertEquals("http://localhost/bodies", result.getBody());
|
|
}
|
|
|
|
@Test
|
|
void shouldPickFirstSystem_whenMultipleSystemsAvailable() {
|
|
System internalSystem1 = new System(0, "https://creativecommons.org/cc-by",
|
|
"OParl-Schnittstelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), false);
|
|
System internalSystem2 = new System(1, "https://creativecommons.org/cc-by-sa",
|
|
"OParl-Baustelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), false);
|
|
when(systemRepository.findAll()).thenReturn(List.of(internalSystem1, internalSystem2));
|
|
|
|
de.twomartens.oparlservice.entity.dto.System result = service.getSystem();
|
|
|
|
assertNotNull(result);
|
|
assertEquals(String.valueOf(0), result.getId());
|
|
assertEquals("https://creativecommons.org/cc-by", result.getLicense());
|
|
assertEquals("OParl-Schnittstelle", result.getName());
|
|
}
|
|
|
|
@Test
|
|
void shouldPickFirstNotDeletedSystem() {
|
|
System internalSystem1 = new System(0, "https://creativecommons.org/cc-by",
|
|
"OParl-Schnittstelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), true);
|
|
System internalSystem2 = new System(1, "https://creativecommons.org/cc-by-sa",
|
|
"OParl-Baustelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), false);
|
|
when(systemRepository.findAll()).thenReturn(List.of(internalSystem1, internalSystem2));
|
|
|
|
de.twomartens.oparlservice.entity.dto.System result = service.getSystem();
|
|
|
|
assertNotNull(result);
|
|
assertEquals(String.valueOf(1), result.getId());
|
|
assertEquals("https://creativecommons.org/cc-by-sa", result.getLicense());
|
|
assertEquals("OParl-Baustelle", result.getName());
|
|
assertFalse(result.isDeleted());
|
|
}
|
|
|
|
@Test
|
|
void shouldUseCorrectUrl() {
|
|
System internalSystem = new System(1, "https://creativecommons.org/cc-by-sa",
|
|
"OParl-Baustelle", "admin@2martens.de", "Jim Martens", null, null,
|
|
null, null, ZonedDateTime.now(), ZonedDateTime.now(), false);
|
|
when(systemRepository.findAll()).thenReturn(List.of(internalSystem));
|
|
|
|
de.twomartens.oparlservice.entity.dto.System result1 = service.getSystem();
|
|
properties.setUrl("http://test.com");
|
|
de.twomartens.oparlservice.entity.dto.System result2 = service.getSystem();
|
|
|
|
assertNotNull(result1);
|
|
assertNotNull(result2);
|
|
assertEquals(String.valueOf(1), result1.getId());
|
|
assertEquals(String.valueOf(1), result2.getId());
|
|
assertEquals("http://localhost/bodies", result1.getBody());
|
|
assertEquals("http://test.com/bodies", result2.getBody());
|
|
}
|
|
|
|
@Test
|
|
void shouldReturnNonValuesOfInternalEntity() {
|
|
System internalSystem = new System(1, "https://creativecommons.org/cc-by-sa",
|
|
"OParl-Baustelle", "admin@2martens.de", "Jim Martens",
|
|
"https://sitzungsdienst-eimsbuettel.hamburg.de/bi/allris.net.asp", "https://2martens.de",
|
|
"https://git.2martens.com/2martens/oparl-service", "http://example.com", ZonedDateTime.now(),
|
|
ZonedDateTime.now(),
|
|
false);
|
|
when(systemRepository.findAll()).thenReturn(List.of(internalSystem));
|
|
|
|
de.twomartens.oparlservice.entity.dto.System result = service.getSystem();
|
|
|
|
assertEquals("OParl-Baustelle", result.getName());
|
|
assertEquals("admin@2martens.de", result.getContactEmail());
|
|
assertEquals("Jim Martens", result.getContactName());
|
|
assertEquals("https://2martens.de", result.getVendor());
|
|
assertEquals("https://sitzungsdienst-eimsbuettel.hamburg.de/bi/allris.net.asp", result.getWebsite());
|
|
assertEquals("https://git.2martens.com/2martens/oparl-service", result.getProduct());
|
|
assertEquals("http://example.com", result.getWeb());
|
|
}
|
|
}
|