/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.objecttransaction.list;
import org.eclipse.riena.core.test.RienaTestCase;
import org.eclipse.riena.core.test.collect.NonUITestCase;
import org.eclipse.riena.internal.objecttransaction.impl.ObjectTransactionImpl;
import org.eclipse.riena.objecttransaction.IObjectTransaction;
import org.eclipse.riena.objecttransaction.IObjectTransactionExtract;
import org.eclipse.riena.objecttransaction.ObjectTransactionFactory;
import org.eclipse.riena.objecttransaction.list.value.Addresse;
import org.eclipse.riena.objecttransaction.list.value.Kunde;
import org.eclipse.riena.objecttransaction.list.value.Vertrag;
import org.eclipse.riena.objecttransaction.state.State;
/**
* TODO Fehlender Klassen-Kommentar
*/
@NonUITestCase
public class ObjectTransactionListTest extends RienaTestCase {
/**
*
*/
public void testSimpleAllNew() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("nachname ist nicht Miller", kunde.getNachname().equals("Miller"));
assertTrue("vorname ist nicht john", kunde.getVorname().equals("john"));
assertTrue("kundenr ist nicht 4711", kunde.getKundennr().equals("4711"));
final Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
assertTrue("address ist nicht gesetzt", kunde.getAddresse() != null);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
showStatus("testSimpleAllNew", objectTransaction);
}
/**
*
*/
public void testSimpleExistingKundeAllNew() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("nachname ist nicht Miller", kunde.getNachname().equals("Miller"));
assertTrue("vorname ist nicht john", kunde.getVorname().equals("john"));
assertTrue("kundenr ist nicht 4711", kunde.getKundennr().equals("4711"));
objectTransaction.setCleanModus(false);
final Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
assertTrue("address ist nicht gesetzt", kunde.getAddresse() != null);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
showStatus("testSimpleExistingKundeAllNew", objectTransaction);
}
/**
*
*/
public void testSimpleAllClean() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("nachname ist nicht Miller", kunde.getNachname().equals("Miller"));
assertTrue("vorname ist nicht john", kunde.getVorname().equals("john"));
assertTrue("kundenr ist nicht 4711", kunde.getKundennr().equals("4711"));
final Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
assertTrue("address ist nicht gesetzt", kunde.getAddresse() != null);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
// test within clean modus
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
objectTransaction.setCleanModus(false);
// test after clean modus was left
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
showStatus("testSimpleAllClean", objectTransaction);
}
/**
*
*/
public void testSimpleExistingKundeAllNewChangingAddresse() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
objectTransaction.registerAsDeleted(kunde.getAddresse());
addresse = new Addresse(true);
addresse.setOrt("M�nchen");
addresse.setPlz("80000");
addresse.setStrasse("Leopoldstrasse");
assertTrue("ort in addresse ist nicht M�nchen", addresse.getOrt().equals("M�nchen"));
assertTrue("plz in addresse ist nicht 80000", addresse.getPlz().equals("80000"));
assertTrue("strasse ist nicht Leopoldstrasse", addresse.getStrasse().equals("Leopoldstrasse"));
kunde.setAddresse(addresse);
assertTrue("address ist nicht gesetzt", kunde.getAddresse() != null);
showStatus("testSimpleExistingKundeAllNewChangingAddresse", objectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSetAndGet() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=miller", kunde.getNachname().equals("Miller"));
showStatus("testSimpleWithNewKundeAndSetAndGet", objectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSubTransaction() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
showStatus("testSimpleWithNewKundeAndSubTransaction objectTransaction", objectTransaction);
showStatus("testSimpleWithNewKundeAndSubTransaction subObjectTransaction", subObjectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSubTransactionAndCommit() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
subObjectTransaction.toString();
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
subObjectTransaction.commit();
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
showStatus("testSimpleWithNewKundeAndSubTransactionAndCommit subObjectTransaction", subObjectTransaction);
showStatus("testSimpleWithNewKundeAndSubTransactionAndCommit objectTransaction", objectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSubTransactionWithNewAddress() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
subObjectTransaction.toString();
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
final Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
showStatus("testSimpleWithNewKundeAndSubTransactionWithNewAddress objectTransaction", objectTransaction);
showStatus("testSimpleWithNewKundeAndSubTransactionWithNewAddress subObjectTransaction", subObjectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSubTransactionWithChangedAddress() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
subObjectTransaction.toString();
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
addresse = new Addresse(true);
subObjectTransaction.registerAsDeleted(kunde.getAddresse());
addresse.setOrt("M�nchen");
addresse.setPlz("80000");
addresse.setStrasse("Leopoldstrasse");
kunde.setAddresse(addresse);
assertTrue("ort in addresse ist nicht M�nchen", addresse.getOrt().equals("M�nchen"));
assertTrue("plz in addresse ist nicht 80000", addresse.getPlz().equals("80000"));
assertTrue("strasse ist nicht Leopoldstrasse", addresse.getStrasse().equals("Leopoldstrasse"));
showStatus("testSimpleWithNewKundeAndSubTransactionWithChangedAddress objectTransaction", objectTransaction);
showStatus("testSimpleWithNewKundeAndSubTransactionWithChangedAddress subObjectTransaction",
subObjectTransaction);
}
/**
*
*/
public void testSimpleWithNewKundeAndSubTransactionWithChangedAddressAndCommit() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("kundenr=4711", kunde.getKundennr().equals("4711"));
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
subObjectTransaction.toString();
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
addresse = new Addresse(true);
subObjectTransaction.registerAsDeleted(kunde.getAddresse());
addresse.setOrt("M�nchen");
addresse.setPlz("80000");
addresse.setStrasse("Leopoldstrasse");
kunde.setAddresse(addresse);
assertTrue("ort in addresse ist nicht M�nchen", addresse.getOrt().equals("M�nchen"));
assertTrue("plz in addresse ist nicht 80000", addresse.getPlz().equals("80000"));
assertTrue("strasse ist nicht Leopoldstrasse", addresse.getStrasse().equals("Leopoldstrasse"));
subObjectTransaction.commit();
assertTrue("vorname=jane", kunde.getVorname().equals("jane"));
assertTrue("nachname=Stewart", kunde.getNachname().equals("Stewart"));
assertTrue("ort in addresse ist nicht M�nchen", addresse.getOrt().equals("M�nchen"));
assertTrue("plz in addresse ist nicht 80000", addresse.getPlz().equals("80000"));
assertTrue("strasse ist nicht Leopoldstrasse", addresse.getStrasse().equals("Leopoldstrasse"));
showStatus("testSimpleWithNewKundeAndSubTransactionWithChangedAddressAndCommit objectTransaction",
objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewVertraege() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0816") == null);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
showStatus("testSimpleWithExistingKundeUndNewVertraege objectTransaction", objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewAndRemoveVertraege1() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 2);
kunde.removeVertrag(v1);
objectTransaction.registerAsDeleted(v1);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 1);
showStatus("testSimpleWithExistingKundeUndNewAndRemoveVertraege1 objectTransaction", objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewAndRemoveVertraege2() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
kunde.removeVertrag("0815");
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
objectTransaction.registerAsDeleted(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
showStatus("testSimpleWithExistingKundeUndNewAndRemoveVertraege2 objectTransaction", objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewAndRemoveVertraege3() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 2);
objectTransaction.setCleanModus(false);
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 2);
kunde.removeVertrag("0815");
assertTrue("anzahl vertr�ge bei kunde ist falsch", kunde.listVertrag().length == 1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag 0815 gefunden", kunde.getVertrag("0815") == null);
objectTransaction.registerAsDeleted(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
showStatus("testSimpleWithExistingKundeUndNewAndRemoveVertraege2 objectTransaction", objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewVertraegeInSubTransaction() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0816") == null);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
showStatus("testSimpleWithExistingKundeUndNewVertraegeInSubTransaction objectTransaction", objectTransaction);
showStatus("testSimpleWithExistingKundeUndNewVertraegeInSubTransaction subObjectTransaction",
subObjectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndNewVertraegeInSubTransactionAndCommit() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0816") == null);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
subObjectTransaction.commit();
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("Es gibt nicht 2 Vertr�ge sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 2);
showStatus("testSimpleWithExistingKundeUndNewVertraegeInSubTransactionAndCommit objectTransaction",
objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndRemoveVertraegeInSubTransaction() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.removeVertrag(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
subObjectTransaction.registerAsDeleted(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransaction objectTransaction", objectTransaction);
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransaction subObjectTransaction",
subObjectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommit() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.removeVertrag(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
subObjectTransaction.registerAsDeleted(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
subObjectTransaction.commit();
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommit objectTransaction",
objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommitWithList() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("Es gibt nicht 2 Vertr�ge sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 2);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.removeVertrag(v1);
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
subObjectTransaction.registerAsDeleted(v1);
subObjectTransaction.commit();
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommitWithList objectTransaction",
objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommitRoot() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0815") == v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("anzahl vertr�ge ist nicht 2", kunde.listVertrag().length == 2);
assertTrue("reihenfolge: erste Vertrag ist nicht 0815", kunde.listVertrag()[0] == v1);
assertTrue("reihenfolge: zweiter Vertrag ist nicht 0816", kunde.listVertrag()[1] == v2);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.removeVertrag(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
subObjectTransaction.registerAsDeleted(v1);
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
subObjectTransaction.commit();
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
objectTransaction.commitToObjects();
assertTrue("falscher oder keine Vertrag beim Kunden gefunden", kunde.getVertrag("0816") == v2);
assertTrue("nicht existierender Vertrag gefunden", kunde.getVertrag("0815") == null);
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommit objectTransaction",
objectTransaction);
}
/**
*
*/
public void testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommitRootWithList() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
final Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
final Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertTrue("Es gibt nicht 2 Vertr�ge sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 2);
final IObjectTransaction subObjectTransaction = ObjectTransactionFactory.getInstance()
.createSubObjectTransaction(objectTransaction);
kunde.removeVertrag(v1);
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
assertTrue("reihenfolge: erste Vertrag ist nicht 0816", kunde.listVertrag()[0] == v2);
subObjectTransaction.registerAsDeleted(v1);
subObjectTransaction.commit();
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
objectTransaction.commitToObjects();
assertTrue("Es gibt nicht 1 Vertrag sondern :" + kunde.listVertrag().length, kunde.listVertrag().length == 1);
showStatus("testSimpleWithExistingKundeUndRemoveVertraegeInSubTransactionAndCommitWithList objectTransaction",
objectTransaction);
}
/**
*
*/
public void testImport() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
// simulating a Kunde from the database
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("vorname=john", kunde.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde.getNachname().equals("Miller"));
// making changes to the object
objectTransaction.setCleanModus(false);
kunde.setVorname("jane");
kunde.setNachname("Stewart");
// extracting recorded changes
final IObjectTransactionExtract extract = objectTransaction.exportExtract();
// create new objecttransaction
final IObjectTransaction objectTransaction2 = ObjectTransactionFactory.getInstance().createObjectTransaction();
// simulate of reloading the same data from the database as before
objectTransaction2.setCleanModus(true);
final Kunde kunde2 = new Kunde("4711");
kunde2.setVorname("john");
kunde2.setNachname("Miller");
assertTrue("vorname=john", kunde2.getVorname().equals("john"));
assertTrue("nachname=Miller", kunde2.getNachname().equals("Miller"));
// apply the changes from the other objecttransaction's extract
objectTransaction2.setCleanModus(false);
objectTransaction2.importExtract(extract);
// ---> properties have changed
assertTrue("vorname=john", kunde2.getVorname().equals("jane"));
assertTrue("nachname=Miller", kunde2.getNachname().equals("Stewart"));
}
/**
*
*/
public void testImport2() {
final IObjectTransaction objectTransaction = ObjectTransactionFactory.getInstance().createObjectTransaction();
// simulating a Kunde from the database
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertEquals("vorname=john", "john", kunde.getVorname());
assertEquals("nachname=Miller", "Miller", kunde.getNachname());
Vertrag v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde.addVertrag(v1);
Vertrag v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde.addVertrag(v2);
assertEquals("anzahl vertr�ge bei kunde ist falsch", 2, kunde.listVertrag().length);
// making changes to the object
objectTransaction.setCleanModus(false);
kunde.setVorname("jane");
kunde.setNachname("Stewart");
assertSame("reihenfolge: erste Vertrag ist nicht 0815", kunde.listVertrag()[0], v1);
assertSame("reihenfolge: zweiter Vertrag ist nicht 0816", kunde.listVertrag()[1], v2);
kunde.removeVertrag("0815");
assertEquals("anzahl vertr�ge bei kunde ist falsch", 1, kunde.listVertrag().length);
assertSame("reihenfolge: erste Vertrag ist nicht 0816", kunde.listVertrag()[0], v2);
// extracting recorded changes
final IObjectTransactionExtract extract = objectTransaction.exportExtract();
// create new objecttransaction
final IObjectTransaction objectTransaction2 = ObjectTransactionFactory.getInstance().createObjectTransaction();
// simulate of reloading the same data from the database as before
objectTransaction2.setCleanModus(true);
final Kunde kunde2 = new Kunde("4711");
kunde2.setVorname("john");
kunde2.setNachname("Miller");
assertEquals("vorname=john", "john", kunde2.getVorname());
assertEquals("nachname=Miller", "Miller", kunde2.getNachname());
v1 = new Vertrag("0815");
v1.setVertragsBeschreibung("mein erster Vertrag");
kunde2.addVertrag(v1);
v2 = new Vertrag("0816");
v2.setVertragsBeschreibung("noch ein Vertrag");
kunde2.addVertrag(v2);
assertEquals("anzahl vertr�ge bei kunde ist falsch", 2, kunde2.listVertrag().length);
assertSame("reihenfolge: erste Vertrag ist nicht 0815", kunde2.listVertrag()[0], v1);
assertSame("reihenfolge: zweiter Vertrag ist nicht 0816", kunde2.listVertrag()[1], v2);
// apply the changes from the other objecttransaction's extract
objectTransaction2.setCleanModus(false);
objectTransaction2.importExtract(extract);
// ---> properties have changed
assertEquals("vorname=john", "jane", kunde2.getVorname());
assertEquals("nachname=Miller", "Stewart", kunde2.getNachname());
assertNull("vertrag 0815 must return null", kunde2.getVertrag("0815"));
assertEquals("anzahl vertr�ge bei kunde ist falsch", 1, kunde2.listVertrag().length);
assertSame("reihenfolge: erste Vertrag ist nicht 0816", kunde2.listVertrag()[0], v2);
kunde.removeVertrag("0816");
assertEquals("anzahl vertr�ge bei kunde ist falsch", 0, kunde2.listVertrag().length);
}
/**
*
*/
public void testSimpleCheckVersion() {
final ObjectTransactionImpl objectTransaction = (ObjectTransactionImpl) ObjectTransactionFactory.getInstance()
.createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
assertTrue("nachname ist nicht Miller", kunde.getNachname().equals("Miller"));
assertTrue("vorname ist nicht john", kunde.getVorname().equals("john"));
assertTrue("kundenr ist nicht 4711", kunde.getKundennr().equals("4711"));
final Addresse addresse = new Addresse(true);
kunde.setAddresse(addresse);
assertTrue("address ist nicht gesetzt", kunde.getAddresse() != null);
addresse.setOrt("Frankfurt");
addresse.setPlz("60000");
addresse.setStrasse("M�nchnerstr.");
assertTrue("ort in addresse ist nicht Frankfurt", addresse.getOrt().equals("Frankfurt"));
assertTrue("plz in addresse ist nicht 60000", addresse.getPlz().equals("60000"));
assertTrue("strasse ist nicht M�nchnerstr.", addresse.getStrasse().equals("M�nchnerstr."));
assertTrue("kunde ist nicht CLEAN", objectTransaction.isState(kunde, State.CLEAN));
assertTrue("addresse ist nicht CLEAN", objectTransaction.isState(addresse, State.CLEAN));
objectTransaction.setCleanModus(false);
assertTrue("kunde hat nicht version 1", kunde.getVersion().equals("1"));
assertTrue("addresse hat nicht version 1", addresse.getVersion().equals("1"));
addresse.setPlz("70000");
objectTransaction.setVersionUpdate(addresse, "1.1");
assertTrue("addresse hat nicht version 1.1", addresse.getVersion().equals("1.1"));
assertTrue("addresse ist nicht MODIFIED", objectTransaction.isState(addresse, State.MODIFIED));
showStatus("testSimpleCheckVersion", objectTransaction);
}
/**
*
*/
public void testUpdateVersion() {
final ObjectTransactionImpl objectTransaction = (ObjectTransactionImpl) ObjectTransactionFactory.getInstance()
.createObjectTransaction();
objectTransaction.setCleanModus(true);
final Kunde kunde = new Kunde("4711");
kunde.setVorname("john");
kunde.setNachname("Miller");
objectTransaction.setCleanModus(false);
assertTrue("kunde ist nicht CLEAN", objectTransaction.isState(kunde, State.CLEAN));
kunde.setVorname("jim");
assertTrue("kunde ist nicht MODIFIED", objectTransaction.isState(kunde, State.MODIFIED));
IObjectTransactionExtract extract = objectTransaction.exportExtract();
// simulate remote system with new objecttransaction
final ObjectTransactionImpl objectTransaction2 = (ObjectTransactionImpl) ObjectTransactionFactory.getInstance()
.createObjectTransaction();
objectTransaction2.setCleanModus(true);
final Kunde kunde2 = new Kunde("4711");
kunde2.setVorname("john");
kunde2.setNachname("Miller");
assertTrue("kunde2 ist nicht CLEAN", objectTransaction2.isState(kunde2, State.CLEAN));
objectTransaction2.setCleanModus(false);
objectTransaction2.importExtract(extract);
assertTrue("kunde2 ist nicht MODIFIED", objectTransaction2.isState(kunde2, State.MODIFIED));
objectTransaction2.commitToObjects();
assertTrue("kunde2 ist nicht CLEAN", objectTransaction2.isState(kunde2, State.CLEAN));
objectTransaction2.setVersionUpdate(kunde2, "2");
assertTrue("kunde2 ist nicht MODIFIED", objectTransaction2.isState(kunde2, State.MODIFIED));
extract = objectTransaction2.exportExtract();
// back on my localsystem
objectTransaction.commitToObjects();
assertTrue("kunde ist nicht CLEAN", objectTransaction.isState(kunde, State.CLEAN));
objectTransaction.importExtract(extract);
assertTrue("kunde ist nicht MODIFIED", objectTransaction.isState(kunde, State.MODIFIED));
showStatus("testUpdateVersion", objectTransaction);
}
private void showStatus(final String testName, final IObjectTransaction objectTransaction) {
System.out.println("testname >>>>>" + testName + "<<<<<");
System.out.println(objectTransaction);
}
}