edu.northwestern.bioinformatics.studycalendar.xml.writers.PeriodDeltaXmlValidationTest.java Source code

Java tutorial

Introduction

Here is the source code for edu.northwestern.bioinformatics.studycalendar.xml.writers.PeriodDeltaXmlValidationTest.java

Source

/*L
 * Copyright Northwestern University.
 *
 * Distributed under the OSI-approved BSD 3-Clause License.
 * See http://ncip.github.io/psc/LICENSE.txt for details.
 */

package edu.northwestern.bioinformatics.studycalendar.xml.writers;

import edu.northwestern.bioinformatics.studycalendar.domain.Epoch;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Element;
import org.xml.sax.SAXException;

import java.io.IOException;

/**
 *@author  Saurabh Agrawal.
 */
public class PeriodDeltaXmlValidationTest extends AbstractXmlValidationTestCase {
    private Element ePeriod;

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        ePeriod = periodDeltaXmlSerializer.createElement(periodDelta);
    }

    public void testValidteElement() {
        amendment.getDeltas().clear();
        assertFalse(StringUtils.isBlank(periodDeltaXmlSerializer.validate(amendment, ePeriod)));
        assertEquals(String.format(
                "\n released amendment present in the system does have  any delta matching with provied grid id %s and node id  %s of delta.\n",
                periodDelta.getGridId(), period3.getGridId()),
                periodDeltaXmlSerializer.validate(amendment, ePeriod).toString());

        amendment.addDelta(periodDelta);
        assertTrue(StringUtils.isBlank(periodDeltaXmlSerializer.validate(amendment, ePeriod)));

    }

    public void testValidateElementForDifferentNumberOfChanges() {

        periodDelta.addChange(add1);
        amendment.addDelta(periodDelta);
        assertEquals(String.format(
                "Imported document has different number of Changes for  delta (id :%s).  Please make sure changes are identical and they are in same order.",
                periodDelta.getGridId()), periodDeltaXmlSerializer.validate(amendment, ePeriod).toString());

    }

    public void testValidateForInValidAddChangeContent() throws IOException, SAXException {
        periodDelta.addChange(add1);
        amendment.addDelta(periodDelta);
        ePeriod = periodDeltaXmlSerializer.createElement(periodDelta);

        ((Epoch) add1.getChild()).getStudySegments().get(0).getPeriods().last().getPlannedActivities().get(0)
                .setActivity(activity3);

        assertTrue(periodDeltaXmlSerializer.validate(amendment, ePeriod)
                .contains("activity references are different for PlannedActivity"));

    }

    public void testValidateForInValidPropertyChangeAttributes() throws IOException, SAXException {

        periodDelta.addChange(add1);
        amendment.addDelta(periodDelta);
        ePeriod = periodDeltaXmlSerializer.createElement(periodDelta);

        add1.setIndex(5);

        assertTrue(periodDeltaXmlSerializer.validate(amendment, ePeriod)
                .contains("index is different. expected:5 , found (in imported document) :0"));

    }

    public void testValidateForIdenticalDelta() throws IOException, SAXException {

        periodDelta.addChange(add1);
        amendment.addDelta(periodDelta);
        ePeriod = periodDeltaXmlSerializer.createElement(periodDelta);

        assertTrue(StringUtils.isBlank(periodDeltaXmlSerializer.validate(amendment, ePeriod)));

    }

}