/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package co.paralleluniverse.fibers.instrument; import co.paralleluniverse.fibers.Fiber; import co.paralleluniverse.fibers.SuspendExecution; import co.paralleluniverse.fibers.TestsHelper; import co.paralleluniverse.strands.SuspendableRunnable; import static org.junit.Assert.*; import org.junit.Test; /** * * @author Matthias Mann */ public class UninitializedTest implements SuspendableRunnable { Object result = "b"; @Test public void testUninitialized() { Fiber co = new Fiber((String) null, null, this); int count = 1; while (!TestsHelper.exec(co)) count++; assertEquals(2, count); assertEquals("a", result); } @Override public void run() throws SuspendExecution { result = getProperty(); } private Object getProperty() throws SuspendExecution { Object x; Object y = getProperty("a"); if (y != null) { x = y; } else { x = getProperty("c"); } return x; } private Object getProperty(String string) throws SuspendExecution { Fiber.park(); return string; } }