Package org.drools.ide.common.server.util

Source Code of org.drools.ide.common.server.util.ScenarioXMLPersistenceTest

package org.drools.ide.common.server.util;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.drools.ide.common.client.modeldriven.testing.ExecutionTrace;
import org.drools.ide.common.client.modeldriven.testing.FactData;
import org.drools.ide.common.client.modeldriven.testing.FieldData;
import org.drools.ide.common.client.modeldriven.testing.Scenario;
import org.drools.ide.common.client.modeldriven.testing.VerifyFact;
import org.drools.ide.common.client.modeldriven.testing.VerifyField;
import org.drools.ide.common.client.modeldriven.testing.VerifyRuleFired;
import org.drools.ide.common.server.util.ScenarioXMLPersistence;

public class ScenarioXMLPersistenceTest extends TestCase {

  public void testToXML() {
    ScenarioXMLPersistence p = ScenarioXMLPersistence.getInstance();

    Scenario sc = new Scenario();

    String s = p.marshal(sc);
    assertNotNull(s);

    sc = getDemo();

    s = p.marshal(sc);

      assertTrue(s.indexOf("<ruleName>Life unverse and everything</ruleName>") > 0);

      Scenario sc_ = p.unmarshal(s);
      assertEquals(sc.globals.size(), sc_.globals.size());
      assertEquals(sc.fixtures.size(), sc_.fixtures.size());
      assertTrue(s.indexOf("org.drools") == -1); //check we have aliased all

  }

  public void testTrimUneededSection() {
    Scenario sc = getDemo();
    Scenario orig = getDemo();
    sc.fixtures.add(new ExecutionTrace());

    int origSize = orig.fixtures.size();

    assertEquals(origSize + 1, sc.fixtures.size());
    String xml = ScenarioXMLPersistence.getInstance().marshal(sc);
    Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);

    assertEquals(origSize, sc_.fixtures.size());






  }


  public void testNewScenario() {
        FactData d1 = new FactData("Driver", "d1", ls(new FieldData[] {new FieldData("age", "42"), new FieldData("name", "david")}), false);
        Scenario sc = new Scenario();
        sc.fixtures.add(d1);
        sc.fixtures.add(new ExecutionTrace());

        int size = sc.fixtures.size();

    String xml = ScenarioXMLPersistence.getInstance().marshal(sc);
    Scenario sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);

    assertEquals(size, sc_.fixtures.size());

    sc = new Scenario();
    sc.fixtures.add(new ExecutionTrace());
    xml = ScenarioXMLPersistence.getInstance().marshal(sc);
    sc_ = ScenarioXMLPersistence.getInstance().unmarshal(xml);
    assertEquals(1, sc_.fixtures.size());
  }

  private Scenario getDemo() {
        //Sample data
        FactData d1 = new FactData("Driver", "d1", ls(new FieldData[] {new FieldData("age", "42"), new FieldData("name", "david")}), false);
        FactData d2 = new FactData("Driver", "d2", ls(new FieldData[] {new FieldData("name", "michael")}), false);
        FactData d3 = new FactData("Driver", "d3", ls(new FieldData[] {new FieldData("name", "michael2")}), false);
        FactData d4 = new FactData("Accident", "a1", ls(new FieldData[] {new FieldData("name", "michael2")}), false);
        Scenario sc = new Scenario();
        sc.fixtures.add(d1);
        sc.fixtures.add(d2);
        sc.globals.add(d3);
        sc.globals.add(d4);
        sc.rules.add("rule1");
        sc.rules.add("rule2");

        sc.fixtures.add(new ExecutionTrace());

        List fields = new ArrayList();
        VerifyField vfl = new VerifyField("age", "42", "==");
        vfl.actualResult = "43";
        vfl.successResult = new Boolean(false);
        vfl.explanation = "Not cool jimmy.";

        fields.add(vfl);

        vfl = new VerifyField("name", "michael", "!=");
        vfl.actualResult = "bob";
        vfl.successResult = new Boolean(true);
        vfl.explanation = "Yeah !";
        fields.add(vfl);

        VerifyFact vf = new VerifyFact("d1", fields);

        sc.fixtures.add(vf);

        VerifyRuleFired vf1 = new VerifyRuleFired("Life unverse and everything", new Integer(42), null);
        vf1.actualResult = new Integer(42);
        vf1.successResult = new Boolean(true);
        vf1.explanation = "All good here.";

        VerifyRuleFired vf2 = new VerifyRuleFired("Everything else", null, new Boolean(true));
        vf2.actualResult = new Integer(0);
        vf2.successResult = new Boolean(false);
        vf2.explanation = "Not so good here.";
        sc.fixtures.add(vf1);
        sc.fixtures.add(vf2);

    return sc;
  }

  private List ls(FieldData[] fieldDatas) {
    List ls = new ArrayList();
    for (int i = 0; i < fieldDatas.length; i++) {
      ls.add(fieldDatas[i]);
    }
    return ls;
  }


}
TOP

Related Classes of org.drools.ide.common.server.util.ScenarioXMLPersistenceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.