Package nginx.clojure

Source Code of nginx.clojure.TestNoLocalVar

package nginx.clojure;

import static org.junit.Assert.*;

import java.util.ArrayList;

import nginx.clojure.Coroutine;
import nginx.clojure.SuspendExecution;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class TestNoLocalVar {

 
  ArrayList<Integer> ints = new ArrayList<Integer>();
 
  @Before
  public void setUp() throws Exception {
    ints = new ArrayList<Integer>();
  }

  @After
  public void tearDown() throws Exception {
  }
 
  public int get11() throws SuspendExecution {
    Coroutine.yield();
    ints.add(11);
    return 11;
  }
 
  public int get32() throws SuspendExecution {
    Coroutine.yield();
    ints.add(32);
    return 32;
  }
 
  public int add1132() throws SuspendExecution {
    int j = 0;
    j++;
    int rt = get11() + get32();
    System.out.println(j);
    return rt;
  }

  @Test
  public void testAddTowResults() {
    Coroutine co = new Coroutine(new Runnable() {
     
      @Override
      public void run() throws SuspendExecution {
        ints.add(add1132());
      }
    });
    co.resume();
    assertTrue(ints.isEmpty());
    co.resume();
    assertEquals(1, ints.size());
    assertEquals(11, (int)ints.get(0));
    co.resume();
    assertEquals(3, ints.size());
    assertEquals(11, (int)ints.get(0));
    assertEquals(32, (int)ints.get(1));
    assertEquals(11+32, (int)ints.get(2));
    assertTrue(co.getStack().allObjsAreNull());
  }

}
TOP

Related Classes of nginx.clojure.TestNoLocalVar

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.