Commit 2fd0652e authored by Milan Mozolák's avatar Milan Mozolák
Browse files

Added resource tests

parent 59ceea3a
Pipeline #123273 waiting for manual action with stage
......@@ -5,10 +5,7 @@ import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.*;
/**
* Entity representing a resource that is needed for completing a mission.
......@@ -25,7 +22,7 @@ public class Resource extends BaseEntity {
@Column(nullable = false)
private String name;
@ManyToOne
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "mission_id")
private Mission mission;
......
package cz.fi.muni.pa165.seminar4.group7.secretservice.dao;
import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Country;
import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Mission;
import cz.fi.muni.pa165.seminar4.group7.secretservice.entity.Resource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.transaction.Transactional;
import java.sql.Date;
import java.util.Calendar;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author Milan Mozolak
*/
@SpringBootTest
@Transactional
class ResourceTest {
@Autowired
private ResourceDao resourceDao;
@BeforeEach
private void reset() {
resourceDao.deleteAll();
}
private Resource createNewResource() {
return new Resource()
.setName("Explosives");
}
private Country createNewCountry() {
return new Country()
.setCode("US")
.setCommunications("Everything.")
.setDemographics("Americans.")
.setEconomy("Big.")
.setGovernment("Blue or red.")
.setMilitary("Even bigger.")
.setName("America, hell yeah!")
.setGeography("Smaller than widely believed.");
}
private Mission createMission() {
return new Mission()
.setCountry(createNewCountry())
.setDuration(10)
.setObjective("Retrieve bomb plans. Failure is not an option.")
.setStart(new Date(Calendar.getInstance().getTime().getTime()));
}
@Test
void create() {
assertThat(resourceDao.findAll()).isEmpty();
resourceDao.save(createNewResource());
assertThat(resourceDao.findAll()).hasSize(1);
}
@Test
void findByIdExisting() {
var resource = createNewResource();
resourceDao.save(resource);
var find = resourceDao.findById(resource.getId());
assertThat(find).isPresent();
}
@Test
void findByIdNonExisting() {
assertThat(resourceDao.findAll()).isEmpty();
var find = resourceDao.findById("123");
assertThat(find).isEmpty();
}
@Test
void findAll() {
for (int i = 1; i < 10; i++) {
resourceDao.save(createNewResource());
assertThat(resourceDao.findAll()).hasSize(i);
}
}
@Test
void update() {
var r1 = createNewResource();
resourceDao.save(r1);
var r2 = resourceDao.findById(r1.getId());
assertThat(r2).isNotEmpty();
assertEquals(r1.getName(), r2.get().getName());
r1.setName("Bombs");
resourceDao.save(r1);
var r3 = resourceDao.findById(r1.getId());
assertThat(r3).isNotEmpty();
assertEquals(r1.getName(), r3.get().getName());
assertEquals(r1.getName(), r2.get().getName());
}
@Test
void delete() {
var resource = createNewResource();
resourceDao.save(resource);
assertThat(resourceDao.findAll()).hasSize(1);
resourceDao.delete(resource);
assertThat(resourceDao.findAll()).isEmpty();
}
@Test
void createDuplicate() {
var resource = createNewResource();
resourceDao.save(resource);
assertThat(resourceDao.findAll()).hasSize(1);
var resource2 = resourceDao.findById(resource.getId());
assertThat(resource2).isPresent();
resourceDao.save(resource2.get());
assertEquals(resource.getId(), resource2.get().getId());
assertThat(resourceDao.findAll()).hasSize(1);
}
@Test
void mission() {
var mission = createMission();
var resource = createNewResource();
resource.setMission(mission);
resourceDao.save(resource);
var resource2 = resourceDao.findById(resource.getId());
assertThat(resource2).isPresent();
assertEquals(mission, resource2.get().getMission());
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment