3132333435363738394041
// attach an Observer to Stock final Flag priceChange = new Flag(); s.addObserver(priceChange); // verify initial price if (iniPrice != s.NPV()) { fail("stock quote valuation failed"); } // set a new price h.linkTo(new SimpleQuote(newPrice));
4344454647484950515253
// Observer must detect price change if (!priceChange.isUp()) { fail("Observer was not notified of instrument change"); } if (newPrice != s.NPV()) { fail("stock quote havent changed value"); } }
6768697071727374757677
final Instrument s = new Stock(h); final Flag f = new Flag(); s.addObserver(f); //f.registerWith(s); s.NPV(); me1.setValue(3.14); if (!f.isUp()) { fail("Observer was not notified of instrument change"); }
7374757677787980818283
me1.setValue(3.14); if (!f.isUp()) { fail("Observer was not notified of instrument change"); } s.NPV(); f.lower(); final SimpleQuote me2 = new SimpleQuote(0.0); h.linkTo(me2); if (!f.isUp()) {
8485868788899091929394
fail("Observer was not notified of instrument change"); } f.lower(); s.freeze(); s.NPV(); me2.setValue(2.71); if (f.isUp()) { fail("Observer was notified of frozen instrument change"); }
90919293949596979899100
me2.setValue(2.71); if (f.isUp()) { fail("Observer was notified of frozen instrument change"); } s.NPV(); s.unfreeze(); if (!f.isUp()) { fail("Observer was not notified of instrument change"); } }