ScriptExecutionTask implements Runnable { public int getTaskId() { return taskId; } ScriptExecutionTask(GameScriptingEngine gameScriptingEngine, ScriptExecutor<S> executor,
			int scriptId, GameScript<S> script, ScriptBindings scriptBindings, ScriptInvocationListener scriptInvocationListener); @Override void run(); void skipScript(); boolean isFinished(); void cleanup(); int getTaskId(); int getScriptId(); void setTaskFuture(Future<?> taskFuture);  }
@Test public void testIdGeneration() { ScriptExecutionTask<DummyScript> task1 = new ScriptExecutionTask<DummyScript>(new DummyGameScriptingEngine(), new DummyScriptExecutor(null), 0, new GlobalGameScript<DummyScript>(new DummyScript("")), new ScriptBindings(), null); ScriptExecutionTask<DummyScript> task2 = new ScriptExecutionTask<DummyScript>(new DummyGameScriptingEngine(), new DummyScriptExecutor(null), 0, new GlobalGameScript<DummyScript>(new DummyScript("")), new ScriptBindings(), null); Assert.assertEquals(true, task1.getTaskId() != task2.getTaskId()); }