Skip to content
Snippets Groups Projects
Commit 91e21507 authored by Ondřej Trojan's avatar Ondřej Trojan
Browse files

unit tests , integration tests

parent 81983cd8
No related branches found
No related tags found
No related merge requests found
......@@ -42,13 +42,13 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<!-- <scope>test</scope>-->
<version>1.4.194</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
......
......@@ -22,7 +22,7 @@ public class DummyClient implements RemoteClient {
@Override
public List<String> sendForPlaylist() {
return List.of();
return List.of("empty");
}
@Override
......
......@@ -39,8 +39,6 @@ import java.util.stream.IntStream;
@Valid
public class WebController implements WebMvcConfigurer {
@Resource()
public ResponseService responseService;
@Resource()
public VideofileService videofileService;
@Resource()
......
......@@ -178,10 +178,11 @@ public class DisplaySetService {
}
//generate playlist for each client
ResponseData<Boolean> playlistsCreated = playlistService.generatePlaylists(displaySet.get().getName(), displaySet.get().getId().toString(), playlistsData);
if (!playlistsCreated.getData()) {
ResponseData<String[]> playlistsCreated = playlistService.generatePlaylists(displaySet.get().getName(), displaySet.get().getId().toString(), playlistsData);
if (playlistsCreated.getData().length == 0) {
return new ResponseData<>(false, "Playlists could not have been created");
}
playlistService.savePlaylist(displaySet.get().getName(), playlistsCreated.getData());
//location, duration
//distribute playlist to clients AKA Synchronization
......
......@@ -40,7 +40,7 @@ public class PlaylistService {
this.config = config;
}
public ResponseData<Boolean> generatePlaylists(String displaySetName, String displaySetId, ArrayList<PlaylistTrack>[] playlistsData) {
public ResponseData< String[]> generatePlaylists(String displaySetName, String displaySetId, ArrayList<PlaylistTrack>[] playlistsData) {
String[] ret = new String[playlistsData.length];
StringBuilder sb;
for (int client = 0; client < playlistsData.length; client++) {
......@@ -64,8 +64,7 @@ public class PlaylistService {
sb.append("</playlist>");
ret[client] = sb.toString();
}
savePlaylist(displaySetName, ret);
return new ResponseData<>(true);
return new ResponseData<>(ret);
}
public static String getPlaylistName(String displaySetName) {
......@@ -99,7 +98,7 @@ public class PlaylistService {
sb.append("</track>");
}
private void savePlaylist(String name, String[] playlists) {
public void savePlaylist(String name, String[] playlists) {
String playlistFolder = config.getPlaylistFolderPath();
String playlistName = name.replaceAll("\\s+", "_");
for (int i = 0; i < config.getClientCount(); i++) {
......
package com.museum.projection.service;
import org.springframework.stereotype.Service;
@Service
public class ResponseService {
public String greet() {
return "Hello World";
}
public String changeName(String name) {
return "name" + " service echo";
}
}
package com.museum.projection;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONArray;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.mock.http.server.reactive.MockServerHttpRequest.post;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@ExtendWith(SpringExtension.class)
@SpringBootTest
@AutoConfigureMockMvc
class ApplicationTests {
@Autowired
private MockMvc mockMvc;
@Autowired
private ObjectMapper objectMapper;
@Test
void contextLoads() {
void testForbiddenWithNoAuthorization() throws Exception {
this.mockMvc.perform(get("/test")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isForbidden());
}
}
package com.museum.projection;
import com.museum.projection.clients.DummyClient;
import com.museum.projection.clients.RemoteClient;
import com.museum.projection.config.CustomConfig;
import com.museum.projection.dao.ResponseData;
import com.museum.projection.dto.other.PlaylistTrack;
import com.museum.projection.service.ControlService;
import com.museum.projection.service.PlaylistService;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
public class PlaylistServiceTests {
final int CLIENTS = 2;
final String VIDEO_PATH = "/videopath/";
private PlaylistService playlistService;
@Before
public void init() {
CustomConfig config = new CustomConfig();
config.setVideoFolderPath(VIDEO_PATH);
playlistService = new PlaylistService(config);
}
@Test
public void testToServerFileName()
throws Exception {
String folderPath = "/home/user/";
String displaySetId = "1";
String displayTrackId = "2";
String fileName = "file.mp4";
assertThat(PlaylistService.toServerFileName(folderPath, displaySetId, displayTrackId, fileName)).isEqualTo("/home/user/1/2/1-2-file.mp4");
}
@Test
public void testGetPlaylist()
throws Exception {
String playlistName = "My Test playlist";
assertThat(PlaylistService.getPlaylistName(playlistName)).isEqualTo("My_Test_playlist");
}
@Test
public void testGeneratePlaylist()
throws Exception {
String displaySetId = "1";
String displaySetName = "testSet";
ArrayList<PlaylistTrack>[] playlistsData = new ArrayList[CLIENTS];
for (int i = 0; i < CLIENTS; i++) {
playlistsData[i] = new ArrayList<PlaylistTrack>();
playlistsData[i].add(new PlaylistTrack("/path/" + i, "filename" + i, (float) i, "displayTrack" + i, String.valueOf(i)));
}
ResponseData<String[]> responseData = playlistService.generatePlaylists(displaySetName, displaySetId, playlistsData);
System.out.println(Arrays.toString(responseData.getData()));
assertThat(responseData.getData()).isNotEmpty();
assertThat(responseData.getData().length).isEqualTo(CLIENTS);
for (int i = 0; i < CLIENTS; i++) {
assertThat(responseData.getData()[i]).isEqualTo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<playlist xmlns=\"http://xspf.org/ns/0/\" xmlns:vlc=\"http://www.videolan.org/vlc/playlist/ns/0/\" version=\"1\"><title>testSet</title><trackList><track><location>file:///videopath/" + displaySetId + "/" + i + "/" + displaySetId + "-" + i + "-filename" + i + "</location><duration>" + (i * 1000) + "</duration><extension application=\"http://www.videolan.org/vlc/playlist/0\"><vlc:id>0</vlc:id><vlc:option>recursive=collapse</vlc:option></extension></track></trackList><extension application=\"http://www.videolan.org/vlc/playlist/0\"><vlc:item tid=\"0\"/></extension></playlist>");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment