Search in sources :

Example 1 with Opiskeluoikeus

use of fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus in project pyramus by otavanopisto.

the class KoskiInternetixStudentHandler method studentToModel.

public List<Opiskeluoikeus> studentToModel(Student student, String academyIdentifier) {
    List<Opiskeluoikeus> oos = new ArrayList<>();
    OpiskelijanOPS opiskelijanOPS = settings.resolveOPS(student);
    OpiskeluoikeusInternetix pk = pkHandler.studentToModel(student, academyIdentifier);
    boolean pkSuorituksia = pk != null ? !pk.isEiSuorituksia() : false;
    OpiskeluoikeusInternetix lukio = opiskelijanOPS == OpiskelijanOPS.ops2019 ? lukio2019Handler.oppiaineidenOppimaaranOpiskeluoikeus(student, academyIdentifier) : lukioHandler.studentToModel(student, academyIdentifier);
    boolean lukioSuorituksia = lukio != null ? !lukio.isEiSuorituksia() : false;
    if (!pkSuorituksia && !lukioSuorituksia) {
        // Kummassakaan ei suorituksia -> käytetään linjan mukaista oletusarvona
        KoskiStudyProgrammeHandler studyProgrammeHandlerType = settings.getStudyProgrammeHandlerType(student.getStudyProgramme().getId());
        switch(studyProgrammeHandlerType) {
            case aineopiskelulukio:
                if (lukio != null && lukio.getOpiskeluoikeus() != null) {
                    oos.add(lukio.getOpiskeluoikeus());
                }
                break;
            case aineopiskeluperusopetus:
                if (pk != null && pk.getOpiskeluoikeus() != null) {
                    oos.add(pk.getOpiskeluoikeus());
                }
                break;
            default:
                logger.log(Level.SEVERE, String.format("Handler Type %s didn't match the supported types for student %d", studyProgrammeHandlerType, student.getId()));
                break;
        }
    } else {
        if (pkSuorituksia && pk != null && pk.getOpiskeluoikeus() != null) {
            oos.add(pk.getOpiskeluoikeus());
        }
        if (lukioSuorituksia && lukio != null && lukio.getOpiskeluoikeus() != null) {
            oos.add(lukio.getOpiskeluoikeus());
        }
    }
    // Log a warning if non-archived student couldn't be translated to a model
    if (oos.isEmpty() && Boolean.FALSE.equals(student.getArchived())) {
        koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_RESOLVABLE_SUBJECTS, new Date());
    }
    // Varoitus, jos aineopiskelijalla on sekä pk:n että lukion opiskeluoikeudet
    if (oos.size() > 1) {
        koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.INTERNETIX_BOTH_LINES, new Date());
    }
    return oos;
}
Also used : KoskiStudyProgrammeHandler(fi.otavanopisto.pyramus.koski.KoskiStudyProgrammeHandler) OpiskelijanOPS(fi.otavanopisto.pyramus.koski.OpiskelijanOPS) ArrayList(java.util.ArrayList) Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) Date(java.util.Date)

Example 2 with Opiskeluoikeus

use of fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus in project pyramus by otavanopisto.

the class KoskiClient method invalidateStudyOid.

/**
 * Invalidates a set of study permits in Koski.
 */
public boolean invalidateStudyOid(Person person, Collection<String> studyPermitOids) throws Exception {
    if (CollectionUtils.isEmpty(studyPermitOids)) {
        logger.log(Level.INFO, String.format("Invalidation called with no oids for person %d", person.getId()));
        return true;
    }
    logger.log(Level.INFO, String.format("Invalidating OIDs %s for person %d", studyPermitOids, person.getId()));
    String oppijaOid = personVariableDAO.findByPersonAndKey(person, KOSKI_HENKILO_OID);
    Oppija oppija = findOppijaByOid(oppijaOid);
    // Remove non-compatible entities
    oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> (opiskeluoikeus == null || opiskeluoikeus.getOid() == null));
    oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> getLahdejarjestelma(opiskeluoikeus) != Lahdejarjestelma.pyramus);
    long matchingOIDs = oppija.getOpiskeluoikeudet().stream().filter(opiskeluoikeus -> opiskeluoikeus.getOid() != null).filter(opiskeluoikeus -> getLahdejarjestelma(opiskeluoikeus) == Lahdejarjestelma.pyramus).filter(opiskeluoikeus -> studyPermitOids.contains(opiskeluoikeus.getOid())).count();
    if (matchingOIDs == 0) {
        logger.log(Level.WARNING, String.format("No matching OIDs were found (Person %d). Aborting.", person.getId()));
        return false;
    }
    if (matchingOIDs != studyPermitOids.size()) {
        logger.log(Level.WARNING, String.format("Specified OID(s) were not present (Person %d). Aborting.", person.getId()));
        return false;
    }
    // Remove study permits that don't have matching oid
    oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> !studyPermitOids.contains(opiskeluoikeus.getOid()) || getLahdejarjestelma(opiskeluoikeus) != Lahdejarjestelma.pyramus);
    // There were n matching OIDs that should still be present there (just to be as certain about removing just the wanted ones as possible)
    if (oppija.getOpiskeluoikeudet().size() == matchingOIDs) {
        for (Opiskeluoikeus opiskeluoikeus : oppija.getOpiskeluoikeudet()) {
            if (getLahdejarjestelma(opiskeluoikeus) == Lahdejarjestelma.pyramus) {
                SourceSystemId sourceSystemId = parseSource(opiskeluoikeus.getLahdejarjestelmanId().getId());
                if (sourceSystemId != null) {
                    // Having multiple periods is going to cause problems invalidating due to date checks in Koski
                    opiskeluoikeus.getTila().getOpiskeluoikeusjaksot().clear();
                    Date invalidationDate = opiskeluoikeus.getPaattymispaiva() != null ? opiskeluoikeus.getPaattymispaiva() : opiskeluoikeus.getAlkamispaiva() != null ? opiskeluoikeus.getAlkamispaiva() : new Date();
                    opiskeluoikeus.getTila().addOpiskeluoikeusJakso(new OpiskeluoikeusJakso(invalidationDate, OpiskeluoikeudenTila.mitatoity));
                } else {
                    String emsg = String.format("Could not invalidate student oid because returned source system id couldn't be parsed (Person %d).", person.getId());
                    logger.log(Level.WARNING, emsg);
                    koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
                    return false;
                }
            } else {
                String emsg = String.format("Could not invalidate student oid because source system is not Pyramus (Person %d).", person.getId());
                logger.log(Level.WARNING, emsg);
                koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
                return false;
            }
        }
        return updatePersonToKoski(oppija, person, oppijaOid);
    } else {
        String emsg = String.format("Unexpected error filtering study permits for invalidation (person=%d, n=%d).", person.getId(), matchingOIDs);
        logger.log(Level.WARNING, emsg);
        koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
    }
    return false;
}
Also used : Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) Arrays(java.util.Arrays) KoskiPersonState(fi.otavanopisto.pyramus.domainmodel.koski.KoskiPersonState) Date(java.util.Date) PersonVariableDAO(fi.otavanopisto.pyramus.dao.users.PersonVariableDAO) Client(javax.ws.rs.client.Client) SimpleDateFormat(java.text.SimpleDateFormat) SettingKeyDAO(fi.otavanopisto.pyramus.dao.system.SettingKeyDAO) KoskiErrorMessageBody(fi.otavanopisto.pyramus.koski.model.result.KoskiErrorMessageBody) StringUtils(org.apache.commons.lang3.StringUtils) Level(java.util.logging.Level) Inject(javax.inject.Inject) ClientBuilder(javax.ws.rs.client.ClientBuilder) Lahdejarjestelma(fi.otavanopisto.pyramus.koski.koodisto.Lahdejarjestelma) MediaType(javax.ws.rs.core.MediaType) Builder(javax.ws.rs.client.Invocation.Builder) Student(fi.otavanopisto.pyramus.domainmodel.students.Student) CollectionUtils(org.apache.commons.collections.CollectionUtils) OpiskeluoikeusReturnVal(fi.otavanopisto.pyramus.koski.model.result.OpiskeluoikeusReturnVal) KoskiPersonLogDAO(fi.otavanopisto.pyramus.dao.koski.KoskiPersonLogDAO) Oppija(fi.otavanopisto.pyramus.koski.model.Oppija) ConnectException(java.net.ConnectException) KoskiPersonLog(fi.otavanopisto.pyramus.domainmodel.koski.KoskiPersonLog) SettingKey(fi.otavanopisto.pyramus.domainmodel.system.SettingKey) NoLatestStudentException(fi.otavanopisto.pyramus.koski.exception.NoLatestStudentException) TypeReference(com.fasterxml.jackson.core.type.TypeReference) Person(fi.otavanopisto.pyramus.domainmodel.base.Person) SettingDAO(fi.otavanopisto.pyramus.dao.system.SettingDAO) Setting(fi.otavanopisto.pyramus.domainmodel.system.Setting) OpiskeluoikeudenTila(fi.otavanopisto.pyramus.koski.koodisto.OpiskeluoikeudenTila) StringWriter(java.io.StringWriter) Collection(java.util.Collection) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Set(java.util.Set) Logger(java.util.logging.Logger) Collectors(java.util.stream.Collectors) Entity(javax.ws.rs.client.Entity) OppijaReturnVal(fi.otavanopisto.pyramus.koski.model.result.OppijaReturnVal) Objects(java.util.Objects) List(java.util.List) OpiskeluoikeusJakso(fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso) Response(javax.ws.rs.core.Response) ProcessingException(javax.ws.rs.ProcessingException) ApplicationScoped(javax.enterprise.context.ApplicationScoped) WebTarget(javax.ws.rs.client.WebTarget) StudentDAO(fi.otavanopisto.pyramus.dao.students.StudentDAO) OpiskeluoikeusJakso(fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso) Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) Oppija(fi.otavanopisto.pyramus.koski.model.Oppija) Date(java.util.Date)

Example 3 with Opiskeluoikeus

use of fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus in project pyramus by otavanopisto.

the class KoskiLukio2019StudentTestsIT method testDoubleAssessmentSorting.

@Test
public void testDoubleAssessmentSorting() {
    OffsetDateTime newerAssessmentDate = OffsetDateTime.of(2022, 6, 1, 12, 0, 0, 0, ZoneOffset.UTC);
    OffsetDateTime olderAssessmentDate = OffsetDateTime.of(2022, 2, 1, 12, 0, 0, 0, ZoneOffset.UTC);
    Person person = tools().createPerson();
    Student student = tools().createStudent(person.getId(), 1l);
    Course course = tools().createCourse(getClass().getSimpleName(), ORGANIZATIONID, 4l, 1);
    CourseStudent courseStudent = tools().createCourseStudent(course.getId(), student.getId());
    CourseAssessment courseAssessment = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 6l, newerAssessmentDate);
    CourseAssessment courseAssessment2 = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 8l, olderAssessmentDate);
    try {
        Response response = given().headers(getAuthHeaders()).get("/persons/persons/{ID}/oppija", person.getId());
        response.then().statusCode(200);
        Oppija oppija = response.getBody().as(Oppija.class);
        assertNotNull(oppija);
        assertEquals(1, oppija.getOpiskeluoikeudet().size());
        assertTrue(oppija.getHenkilo() instanceof HenkiloTiedotJaOID);
        HenkiloTiedotJaOID henkilo = (HenkiloTiedotJaOID) oppija.getHenkilo();
        assertEquals(student.getFirstName(), henkilo.getEtunimet());
        assertEquals(student.getLastName(), henkilo.getSukunimi());
        Opiskeluoikeus opiskeluoikeus = oppija.getOpiskeluoikeudet().get(0);
        assertTrue(opiskeluoikeus instanceof LukionOpiskeluoikeus);
        assertEquals(OpiskeluoikeudenTyyppi.lukiokoulutus, opiskeluoikeus.getTyyppi().getValue());
        assertEquals(toLocalDate(student.getStudyStartDate()), toLocalDate(opiskeluoikeus.getAlkamispaiva()));
        assertEquals(toLocalDate(student.getStudyEndDate()), toLocalDate(opiskeluoikeus.getPaattymispaiva()));
        LukionOpiskeluoikeus lukionOpiskeluoikeus = (LukionOpiskeluoikeus) opiskeluoikeus;
        assertEquals(1, lukionOpiskeluoikeus.getSuoritukset().size());
        LukionSuoritus lukionSuoritus = lukionOpiskeluoikeus.getSuoritukset().iterator().next();
        assertEquals(SuorituksenTyyppi.lukionoppimaara, lukionSuoritus.getTyyppi().getValue());
        assertTrue(lukionSuoritus instanceof LukionOppimaaranSuoritus);
        LukionOppimaaranSuoritus lukionOppimaaranSuoritus = (LukionOppimaaranSuoritus) lukionSuoritus;
        OrganisaationToimipisteOID toimipiste = (OrganisaationToimipisteOID) lukionSuoritus.getToimipiste();
        assertEquals("1.1.000.000.00.00000000000", toimipiste.getOid());
        assertEquals("70/011/2015", lukionOppimaaranSuoritus.getKoulutusmoduuli().getPerusteenDiaarinumero());
        /**
         * Subject
         */
        assertEquals(1, lukionOppimaaranSuoritus.getOsasuoritukset().size());
        LukionOsasuoritus subject = lukionOppimaaranSuoritus.getOsasuoritukset().iterator().next();
        assertTrue(subject instanceof LukionOppiaineenSuoritus);
        LukionOppiaineenSuoritus lukionOppiaineenSuoritus = (LukionOppiaineenSuoritus) subject;
        assertEquals(1, lukionOppiaineenSuoritus.getOsasuoritukset().size());
        LukionKurssinSuoritus lukionKurssinSuoritus = lukionOppiaineenSuoritus.getOsasuoritukset().get(0);
        /**
         * Grade, sorted
         */
        assertEquals(2, lukionKurssinSuoritus.getArviointi().size());
        assertNull(lukionKurssinSuoritus.getTunnustettu());
        assertEquals(ArviointiasteikkoYleissivistava.GRADE_9, lukionKurssinSuoritus.getArviointi().get(0).getArvosana().getValue());
        assertEquals(toLocalDate(olderAssessmentDate), toLocalDate(lukionKurssinSuoritus.getArviointi().get(0).getPaiva()));
        assertEquals(ArviointiasteikkoYleissivistava.GRADE_7, lukionKurssinSuoritus.getArviointi().get(1).getArvosana().getValue());
        assertEquals(toLocalDate(newerAssessmentDate), toLocalDate(lukionKurssinSuoritus.getArviointi().get(1).getPaiva()));
    } finally {
        tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment2);
        tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment);
        tools().deleteCourseStudent(courseStudent);
        tools().deleteCourse(course);
        tools().deleteStudent(student);
        tools().deletePerson(person);
    }
}
Also used : LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) LukionOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus) Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) Student(fi.otavanopisto.pyramus.rest.model.Student) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) CourseAssessment(fi.otavanopisto.pyramus.rest.model.CourseAssessment) LukionOsasuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOsasuoritus) Response(io.restassured.response.Response) HenkiloTiedotJaOID(fi.otavanopisto.pyramus.koski.model.HenkiloTiedotJaOID) OffsetDateTime(java.time.OffsetDateTime) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) LukionSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionSuoritus) LukionKurssinSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionKurssinSuoritus) OrganisaationToimipisteOID(fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID) Course(fi.otavanopisto.pyramus.rest.model.Course) Oppija(fi.otavanopisto.pyramus.koski.model.Oppija) Person(fi.otavanopisto.pyramus.rest.model.Person) LukionOppimaaranSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppimaaranSuoritus) AbstractRESTServiceTest(fi.otavanopisto.pyramus.rest.AbstractRESTServiceTest) Test(org.junit.Test)

Example 4 with Opiskeluoikeus

use of fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus in project pyramus by otavanopisto.

the class KoskiLukio2019StudentTestsIT method testDoubleAssessmentPost2022.

@Test
public void testDoubleAssessmentPost2022() {
    OffsetDateTime firstAssessmentDate = OffsetDateTime.of(2021, 1, 1, 12, 0, 0, 0, ZoneOffset.UTC);
    OffsetDateTime secondAssessmentDate = OffsetDateTime.of(2022, 2, 1, 12, 0, 0, 0, ZoneOffset.UTC);
    Person person = tools().createPerson();
    Student student = tools().createStudent(person.getId(), 1l);
    Course course = tools().createCourse(getClass().getSimpleName(), ORGANIZATIONID, 4l, 1);
    CourseStudent courseStudent = tools().createCourseStudent(course.getId(), student.getId());
    CourseAssessment courseAssessment = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 7l, firstAssessmentDate);
    CourseAssessment courseAssessment2 = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 8l, secondAssessmentDate);
    try {
        Response response = given().headers(getAuthHeaders()).get("/persons/persons/{ID}/oppija", person.getId());
        response.then().statusCode(200);
        Oppija oppija = response.getBody().as(Oppija.class);
        assertNotNull(oppija);
        assertEquals(1, oppija.getOpiskeluoikeudet().size());
        assertTrue(oppija.getHenkilo() instanceof HenkiloTiedotJaOID);
        HenkiloTiedotJaOID henkilo = (HenkiloTiedotJaOID) oppija.getHenkilo();
        assertEquals(student.getFirstName(), henkilo.getEtunimet());
        assertEquals(student.getLastName(), henkilo.getSukunimi());
        Opiskeluoikeus opiskeluoikeus = oppija.getOpiskeluoikeudet().get(0);
        assertTrue(opiskeluoikeus instanceof LukionOpiskeluoikeus);
        assertEquals(OpiskeluoikeudenTyyppi.lukiokoulutus, opiskeluoikeus.getTyyppi().getValue());
        assertEquals(toLocalDate(student.getStudyStartDate()), toLocalDate(opiskeluoikeus.getAlkamispaiva()));
        assertEquals(toLocalDate(student.getStudyEndDate()), toLocalDate(opiskeluoikeus.getPaattymispaiva()));
        LukionOpiskeluoikeus lukionOpiskeluoikeus = (LukionOpiskeluoikeus) opiskeluoikeus;
        assertEquals(1, lukionOpiskeluoikeus.getSuoritukset().size());
        LukionSuoritus lukionSuoritus = lukionOpiskeluoikeus.getSuoritukset().iterator().next();
        assertEquals(SuorituksenTyyppi.lukionoppimaara, lukionSuoritus.getTyyppi().getValue());
        assertTrue(lukionSuoritus instanceof LukionOppimaaranSuoritus);
        LukionOppimaaranSuoritus lukionOppimaaranSuoritus = (LukionOppimaaranSuoritus) lukionSuoritus;
        OrganisaationToimipisteOID toimipiste = (OrganisaationToimipisteOID) lukionSuoritus.getToimipiste();
        assertEquals("1.1.000.000.00.00000000000", toimipiste.getOid());
        assertEquals("70/011/2015", lukionOppimaaranSuoritus.getKoulutusmoduuli().getPerusteenDiaarinumero());
        /**
         * Subject
         */
        assertEquals(1, lukionOppimaaranSuoritus.getOsasuoritukset().size());
        LukionOsasuoritus subject = lukionOppimaaranSuoritus.getOsasuoritukset().iterator().next();
        assertTrue(subject instanceof LukionOppiaineenSuoritus);
        LukionOppiaineenSuoritus lukionOppiaineenSuoritus = (LukionOppiaineenSuoritus) subject;
        assertEquals(1, lukionOppiaineenSuoritus.getOsasuoritukset().size());
        LukionKurssinSuoritus lukionKurssinSuoritus = lukionOppiaineenSuoritus.getOsasuoritukset().get(0);
        /**
         * Grade, both grades post 2022
         */
        assertEquals(2, lukionKurssinSuoritus.getArviointi().size());
        assertEquals(ArviointiasteikkoYleissivistava.GRADE_8, lukionKurssinSuoritus.getArviointi().get(0).getArvosana().getValue());
        assertEquals(ArviointiasteikkoYleissivistava.GRADE_9, lukionKurssinSuoritus.getArviointi().get(1).getArvosana().getValue());
    } finally {
        tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment2);
        tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment);
        tools().deleteCourseStudent(courseStudent);
        tools().deleteCourse(course);
        tools().deleteStudent(student);
        tools().deletePerson(person);
    }
}
Also used : LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) LukionOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus) Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) Student(fi.otavanopisto.pyramus.rest.model.Student) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) CourseAssessment(fi.otavanopisto.pyramus.rest.model.CourseAssessment) LukionOsasuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOsasuoritus) Response(io.restassured.response.Response) HenkiloTiedotJaOID(fi.otavanopisto.pyramus.koski.model.HenkiloTiedotJaOID) OffsetDateTime(java.time.OffsetDateTime) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) LukionSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionSuoritus) LukionKurssinSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionKurssinSuoritus) OrganisaationToimipisteOID(fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID) Course(fi.otavanopisto.pyramus.rest.model.Course) Oppija(fi.otavanopisto.pyramus.koski.model.Oppija) Person(fi.otavanopisto.pyramus.rest.model.Person) LukionOppimaaranSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppimaaranSuoritus) AbstractRESTServiceTest(fi.otavanopisto.pyramus.rest.AbstractRESTServiceTest) Test(org.junit.Test)

Example 5 with Opiskeluoikeus

use of fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus in project pyramus by otavanopisto.

the class KoskiLukio2019StudentTestsIT method testBasicInformation.

@Test
public void testBasicInformation() {
    Person person = tools().createPerson();
    Student student = tools().createStudent(person.getId(), 1l);
    Course course = tools().createCourse(getClass().getSimpleName(), ORGANIZATIONID, 4l, 1);
    CourseStudent courseStudent = tools().createCourseStudent(course.getId(), student.getId());
    CourseAssessment courseAssessment = tools().createCourseAssessment(course.getId(), student.getId(), courseStudent.getId(), 7l);
    try {
        Response response = given().headers(getAuthHeaders()).get("/persons/persons/{ID}/oppija", person.getId());
        response.then().statusCode(200);
        Oppija oppija = response.getBody().as(Oppija.class);
        assertNotNull(oppija);
        assertEquals(1, oppija.getOpiskeluoikeudet().size());
        assertTrue(oppija.getHenkilo() instanceof HenkiloTiedotJaOID);
        HenkiloTiedotJaOID henkilo = (HenkiloTiedotJaOID) oppija.getHenkilo();
        assertEquals(student.getFirstName(), henkilo.getEtunimet());
        assertEquals(student.getLastName(), henkilo.getSukunimi());
        Opiskeluoikeus opiskeluoikeus = oppija.getOpiskeluoikeudet().get(0);
        assertTrue(opiskeluoikeus instanceof LukionOpiskeluoikeus);
        assertEquals(OpiskeluoikeudenTyyppi.lukiokoulutus, opiskeluoikeus.getTyyppi().getValue());
        assertEquals(toLocalDate(student.getStudyStartDate()), toLocalDate(opiskeluoikeus.getAlkamispaiva()));
        assertEquals(toLocalDate(student.getStudyEndDate()), toLocalDate(opiskeluoikeus.getPaattymispaiva()));
        LukionOpiskeluoikeus lukionOpiskeluoikeus = (LukionOpiskeluoikeus) opiskeluoikeus;
        assertEquals(1, lukionOpiskeluoikeus.getSuoritukset().size());
        LukionSuoritus lukionSuoritus = lukionOpiskeluoikeus.getSuoritukset().iterator().next();
        assertEquals(SuorituksenTyyppi.lukionoppimaara, lukionSuoritus.getTyyppi().getValue());
        assertTrue(lukionSuoritus instanceof LukionOppimaaranSuoritus);
        LukionOppimaaranSuoritus lukionOppimaaranSuoritus = (LukionOppimaaranSuoritus) lukionSuoritus;
        OrganisaationToimipisteOID toimipiste = (OrganisaationToimipisteOID) lukionSuoritus.getToimipiste();
        assertEquals("1.1.000.000.00.00000000000", toimipiste.getOid());
        assertEquals("70/011/2015", lukionOppimaaranSuoritus.getKoulutusmoduuli().getPerusteenDiaarinumero());
        /**
         * Subject
         */
        assertEquals(1, lukionOppimaaranSuoritus.getOsasuoritukset().size());
        LukionOsasuoritus subject = lukionOppimaaranSuoritus.getOsasuoritukset().iterator().next();
        assertTrue(subject instanceof LukionOppiaineenSuoritus);
        LukionOppiaineenSuoritus lukionOppiaineenSuoritus = (LukionOppiaineenSuoritus) subject;
        assertEquals(1, lukionOppiaineenSuoritus.getOsasuoritukset().size());
        LukionKurssinSuoritus lukionKurssinSuoritus = lukionOppiaineenSuoritus.getOsasuoritukset().get(0);
        /**
         * Grade
         */
        assertEquals(1, lukionKurssinSuoritus.getArviointi().size());
        KurssinArviointi kurssinArviointi = lukionKurssinSuoritus.getArviointi().get(0);
        assertEquals(ArviointiasteikkoYleissivistava.GRADE_8, kurssinArviointi.getArvosana().getValue());
    } finally {
        tools().deleteCourseAssessment(course.getId(), student.getId(), courseAssessment);
        tools().deleteCourseStudent(courseStudent);
        tools().deleteCourse(course);
        tools().deleteStudent(student);
        tools().deletePerson(person);
    }
}
Also used : LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) LukionOppiaineenSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus) Opiskeluoikeus(fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus) LukionOpiskeluoikeus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus) Student(fi.otavanopisto.pyramus.rest.model.Student) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) CourseAssessment(fi.otavanopisto.pyramus.rest.model.CourseAssessment) LukionOsasuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOsasuoritus) Response(io.restassured.response.Response) HenkiloTiedotJaOID(fi.otavanopisto.pyramus.koski.model.HenkiloTiedotJaOID) KurssinArviointi(fi.otavanopisto.pyramus.koski.model.KurssinArviointi) CourseStudent(fi.otavanopisto.pyramus.rest.model.CourseStudent) LukionSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionSuoritus) LukionKurssinSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionKurssinSuoritus) OrganisaationToimipisteOID(fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID) Course(fi.otavanopisto.pyramus.rest.model.Course) Oppija(fi.otavanopisto.pyramus.koski.model.Oppija) Person(fi.otavanopisto.pyramus.rest.model.Person) LukionOppimaaranSuoritus(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppimaaranSuoritus) AbstractRESTServiceTest(fi.otavanopisto.pyramus.rest.AbstractRESTServiceTest) Test(org.junit.Test)

Aggregations

Opiskeluoikeus (fi.otavanopisto.pyramus.koski.model.Opiskeluoikeus)8 Oppija (fi.otavanopisto.pyramus.koski.model.Oppija)7 HenkiloTiedotJaOID (fi.otavanopisto.pyramus.koski.model.HenkiloTiedotJaOID)5 OrganisaationToimipisteOID (fi.otavanopisto.pyramus.koski.model.OrganisaationToimipisteOID)4 LukionKurssinSuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionKurssinSuoritus)4 LukionOpiskeluoikeus (fi.otavanopisto.pyramus.koski.model.lukio.LukionOpiskeluoikeus)4 LukionOppiaineenSuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritus)4 LukionOppimaaranSuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppimaaranSuoritus)4 LukionOsasuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionOsasuoritus)4 LukionSuoritus (fi.otavanopisto.pyramus.koski.model.lukio.LukionSuoritus)4 AbstractRESTServiceTest (fi.otavanopisto.pyramus.rest.AbstractRESTServiceTest)4 Course (fi.otavanopisto.pyramus.rest.model.Course)4 CourseAssessment (fi.otavanopisto.pyramus.rest.model.CourseAssessment)4 CourseStudent (fi.otavanopisto.pyramus.rest.model.CourseStudent)4 Person (fi.otavanopisto.pyramus.rest.model.Person)4 Student (fi.otavanopisto.pyramus.rest.model.Student)4 Response (io.restassured.response.Response)4 Student (fi.otavanopisto.pyramus.domainmodel.students.Student)3 NoLatestStudentException (fi.otavanopisto.pyramus.koski.exception.NoLatestStudentException)3 Test (org.junit.Test)3