package org.sculptor.examples.library.media.domain;
import static org.sculptor.examples.library.person.domain.PersonName.personName;
import static org.sculptor.examples.library.person.domain.Ssn.ssn;
import org.apache.commons.lang.time.DateUtils;
import org.sculptor.examples.library.person.domain.Country;
import org.sculptor.examples.library.person.domain.Gender;
import org.sculptor.examples.library.person.domain.Person;
import org.sculptor.examples.library.person.domain.PersonRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class LibraryTestData {
private static final String[] DATE_PATTERNS = { "yyyy-MM-dd" };
@Autowired
private LibraryRepository libraryRepository;
@Autowired
private PhysicalMediaRepository physicalMediaRepository;
@Autowired
private MediaRepository mediaRepository;
@Autowired
private MediaCharacterRepository mediaCharacterRepository;
@Autowired
private PersonRepository personRepository;
private String libraryId;
private String physicalMediaId1;
public void saveInitialData() throws Exception {
Person p1 = new Person(Gender.MALE, ssn("123456", Country.US));
p1.setBirthDate(DateUtils.parseDate("1953-05-16", DATE_PATTERNS));
p1.setName(personName("Pierce", "Brosnan"));
p1 = personRepository.save(p1);
Library library = new Library("LibraryServiceTest");
library = libraryRepository.save(library);
libraryId = library.getId();
PhysicalMedia pm1 = new PhysicalMedia();
pm1.setLocation("abc123");
pm1.setStatus("A");
pm1.setLibraryId(libraryId);
pm1 = physicalMediaRepository.save(pm1);
physicalMediaId1 = pm1.getId();
library.getMediaIds().add(pm1.getId());
PhysicalMedia pm2 = new PhysicalMedia();
pm2.setLocation("abc456");
pm2.setStatus("A");
pm2.setLibraryId(libraryId);
pm2 = physicalMediaRepository.save(pm2);
library.getMediaIds().add(pm2.getId());
// we have added physicalMedia to the library
libraryRepository.save(library);
Movie m1 = new Movie("Pippi L�ngstrump i S�derhavet", "abc");
m1.setPlayLength(82);
m1.getPhysicalMediaIds().add(pm1.getId());
m1 = (Movie) mediaRepository.save(m1);
pm1.getMediaIds().add(m1.getId());
pm1 = physicalMediaRepository.save(pm1);
Movie m2 = new Movie("Die Another Day", "dfe");
m2.setPlayLength(82);
m2.setCategory(Genre.ACTION);
m2.getEngagements().add(new Engagement("Actor", p1));
m2.getPhysicalMediaIds().add(pm2.getId());
m2 = (Movie) mediaRepository.save(m2);
pm2.getMediaIds().add(m2.getId());
pm2 = physicalMediaRepository.save(pm2);
Movie m3 = new Movie("Some bonus", "ghi");
m3.setPlayLength(5);
m3.getPhysicalMediaIds().add(pm2.getId());
m3 = (Movie) mediaRepository.save(m3);
pm2.getMediaIds().add(m3.getId());
pm2 = physicalMediaRepository.save(pm2);
MediaCharacter c1 = new MediaCharacter("Pippi");
c1.getExistsInMediaIds().add(m1.getId());
c1 = mediaCharacterRepository.save(c1);
m1.getMediaCharactersIds().add(c1.getId());
m1 = (Movie) mediaRepository.save(m1);
MediaCharacter c2 = new MediaCharacter("James Bond");
c2.getPlayedByIds().add(p1.getId());
c2.getExistsInMediaIds().add(m2.getId());
c2 = mediaCharacterRepository.save(c2);
m2.getMediaCharactersIds().add(c2.getId());
m2 = (Movie) mediaRepository.save(m2);
}
public String getLibraryId() {
return libraryId;
}
public String getPhysicalMediaId1() {
return physicalMediaId1;
}
}