package com.github.atemerev.hollywood.frankenstein;
import org.junit.Test;
import org.junit.Assert;
import com.github.atemerev.hollywood.annotations.State;
import com.github.atemerev.hollywood.Actor;
import com.github.atemerev.hollywood.Hollywood;
/**
* @author Alexander Temerev, Alexander Kuklev
* @version $Id$
*/
public class ProxyStateTest {
public @Test void testAutoProxy() throws Exception {
ScaryState state = Hollywood.loadStateInstance(ScaryState.class, false);
Assert.assertNotNull(state);
try {
int scareLeval = state.getScareLevel();
Assert.fail("Pidarasy!");
} catch (UnsupportedOperationException e) {
System.out.println("Cool! " + e.getMessage());
}
Assert.assertEquals(10, state.getWarmLevel());
}
public @State static abstract class ScaryState extends Actor {
public abstract int getScareLevel();
public int getWarmLevel() {
return 10;
}
}
}