package de.passau.uni.sec.compose.id.core.persistence;
import static org.junit.Assert.assertEquals;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import de.passau.uni.sec.compose.id.core.persistence.entities.EntityGroupMembership;
import de.passau.uni.sec.compose.id.core.persistence.entities.Group;
import de.passau.uni.sec.compose.id.core.persistence.entities.ServiceSourceCode;
import de.passau.uni.sec.compose.id.core.persistence.entities.User;
import de.passau.uni.sec.compose.id.core.persistence.repository.EntityGroupMembershipRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.GroupRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.ServiceSourceCodeRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.UserRepository;
public class TestServiceSourceCodeRepository extends IntegrationTestBase {
@Qualifier("serviceSourceCodeRepository")
@Autowired
ServiceSourceCodeRepository serviceSourceCodeRepository;
@Qualifier("entityGroupMembershipRepository")
@Autowired
EntityGroupMembershipRepository entityGroupMembershipRepository ;
@Qualifier("userRepository")
@Autowired
UserRepository userRepository;
@Qualifier("groupRepository")
@Autowired
GroupRepository groupRepository;
private String user_id;
private String group_id;
private EntityGroupMembership memb;
@Before
public void createUserAndGroup() {
User u = new User();
user_id = UUID.randomUUID().toString();
u.setId(user_id);
u.setLastModified(new Date(System.currentTimeMillis()));
userRepository.saveAndFlush(u);
Group g = new Group();
g.setOwner(u);
group_id = UUID.randomUUID().toString();
g.setLastModified(new Date(System.currentTimeMillis()));
g.setId(group_id);
g.setName("new group");
groupRepository.saveAndFlush(g);
memb = new EntityGroupMembership();
memb.setGroup(g);
memb.setId(UUID.randomUUID().toString());
memb.setGroup(g);
}
/**
* Tests the user repository by adding a user.
*/
@Test
public void testSourceCode() {
ServiceSourceCode sc = new ServiceSourceCode();
Group g = groupRepository.getOne(group_id);
Collection<Group> gs = new LinkedList<>();
gs.add(g);
List<EntityGroupMembership> ms = new LinkedList<>();
entityGroupMembershipRepository.saveAndFlush(memb);
ms.add(memb);
sc.setGroups(ms);
sc.setDeveloper(userRepository.getOne(user_id));
sc.setId(UUID.randomUUID().toString());
sc.setLastModified(new Date(System.currentTimeMillis()));
sc.setReputation(2);
sc.setPayment(false);
sc.setName("Name of my source");
sc.setVersion("1.o0");
sc.setVisible(false);
serviceSourceCodeRepository.saveAndFlush(sc);
assertEquals(sc, serviceSourceCodeRepository.getOne(sc.getId()));
}
}