/*
* Created on 30.11.2004
* $Id: KirjastoStories.java,v 1.4 2004/12/07 10:24:22 mttuomai Exp $
*/
package acceptance;
import kirjasto.Kommentti;
import kirjasto.Laina;
import kirjasto.Lainaaja;
import kirjasto.Nide;
import kirjasto.Teos;
import org.nakedobjects.object.NakedObject;
import org.nakedobjects.object.ObjectStoreException;
import org.nakedobjects.testing.AbstractView;
import org.nakedobjects.testing.AcceptanceTest;
import org.nakedobjects.testing.ClassView;
import org.nakedobjects.testing.View;
/**
* @author ji
*/
public class KirjastoStories extends AcceptanceTest {
private ClassView lainat;
private ClassView lainaajat;
private ClassView niteet;
/**
*
* @param name
*/
public KirjastoStories(String name) {
super(name);
}
/*
* @see org.nakedobjects.testing.AcceptanceTest#runStories()
*/
public void runStories() {
story1Lainaus();
story2Palautus();
story3Tiedustelu();
story4Tilauspyyntö();
}
/*
* @see org.nakedobjects.testing.AcceptanceTest#setUp()
*/
public void setUp() {
registerClass(Kommentti.class);
registerClass(Laina.class);
registerClass(Lainaaja.class);
registerClass(Nide.class);
registerClass(Teos.class);
/* story2 */
lainaajat = getClassView("Lainaajat");
View nasu = lainaajat.newInstance();
nasu.fieldEntry("Etunimi", "Nasu");
nasu.checkTitle("Nasu ");
ClassView teokset = getClassView("Teokset");
View suuretSeikkailut = teokset.newInstance();
suuretSeikkailut.fieldEntry("Teoksen Nimi", "Suuret seikkailut");
niteet = getClassView("Niteet");
View nasunNide = niteet.newInstance();
suuretSeikkailut.drop("Niteet", nasunNide.drag());
lainat = getClassView("Lainat");
View nasunLaina = lainat.newInstance();
nasunLaina.drop("Lainaaja", nasu.drag());
nasunLaina.drop("Nide", nasunNide.drag());
/* story1 */
View mehilaiset = teokset.newInstance();
mehilaiset.fieldEntry("Teoksen Nimi", "Mehiläiset ja minä");
View mehilaisNide = niteet.newInstance();
mehilaiset.drop("Niteet", mehilaisNide.drag());
}
// TODO Huomio! Tarinat saattaa olla puutteellisia.
public void story1Lainaus() {
story("Nalle Puh, uusi asiakas, lainaa kirjan 'Mehiläiset ja minä'");
step("Rekisteröidään Puh uudeksi asiakkaaksi.");
View puh = lainaajat.newInstance();
puh.fieldEntry("Etunimi", "Nalle");
puh.fieldEntry("Sukunimi", "Puh");
step("Etsitään kirjan tiedot.");
View nide = niteet.findInstance("Mehiläiset ja minä _ 1");
step("Lainataan kirja.");
View laina = lainat.newInstance();
laina.drop("Lainaaja", puh.drag());
laina.drop("Nide", nide.drag());
}
public void story2Palautus() {
story("Nasu palauttaa kirjan 'Suuret seikkailut'.");
step("Etsitään lainaus.");
/* FIXME seuraava rivi ei jostain syystä enää toimi */
//View lainaus = lainat.findInstance("Nasu Suuret seikkailut _ 1");
step("Merkitään kirja palautetuksi.");
/* FIXME miten laina tuhotaan? */
//lainaus.rightClick("Destroy object");
//lainaus.removeReference("Nide");
//lainaus.checkField("Nide", (NakedObject) null);
}
public void story3Tiedustelu() {
story("Valkoinen Kani pyytää selvittämään kaikki hänellä lainassa"
+ " olevat kirjat, koska hän ei kiireissään muista niitä,"
+ " ja palautuspäiväkin alkaa hurjaa vauhtia lähetä.");
step("Etsitään Valkoisen Kanin tiedot.");
step("Näytetään kaikki hänen lainat.");
}
public void story4Tilauspyyntö() {
story("Irvikissa ehdottaa kirjan 'Valkoinen hymy -- sinä ja"
+ " hammashoito' hankkimista kirjastoon.");
}
public static void main(String[] args) {
KirjastoStories ks = new KirjastoStories("Kirjaston käyttäjätarinat");
ks.start();
}
}