topical media & game development

talk show tell print

mobile-sugar-test-TaskTest.js / js



  (function() {
    'use strict';
  
    module('Task');
  
    test('constructor, properties, and getters', function() {
      var task1 = new DivSugar.Task();
      strictEqual(task1.id, null);
      strictEqual(task1.active, true);
      strictEqual(task1.deltaTime, 0);
      strictEqual(task1.onUpdate, null);
      strictEqual(task1.onDestroy, null);
      strictEqual(task1.getParent(), null);
  
      var task2 = new DivSugar.Task('task2');
      strictEqual(task2.id, 'task2');
    });
  
    test('update', function() {
      var updatedCount = 0;
      var task1 = new DivSugar.Task();
      var task2 = new DivSugar.Task();
      task1.deltaTime = task2.deltaTime = 100;
      task1.onUpdate = task2.onUpdate = function() {
        strictEqual(this.deltaTime, 223);
        updatedCount++;
      };
      task1.append(task2);
      task1.update(123);
      strictEqual(updatedCount, 2);
      strictEqual(task1.deltaTime, 0);
      strictEqual(task2.deltaTime, 0);
  
      task1.onUpdate = task2.onUpdate = null;
      ok(task1.update(1).update(1));
    });
  
    test('destroy', function() {
      var destroyedCount = 0;
      var task1 = new DivSugar.Task();
      var task2 = new DivSugar.Task();
      task1.onDestroy = task2.onDestroy = function() { destroyedCount++; };
      task1.append(task2);
      task1.destroy();
      strictEqual(destroyedCount, 2);
  
      ok(task1.destroy().destroy());
    });
  
    test('append', function() {
      var task1 = new DivSugar.Task();
      var task2 = new DivSugar.Task();
      var task3 = new DivSugar.Task();
      var task4 = new DivSugar.Task();
      task1.append(task2);
      task1.append(task3);
      task3.append(task4);
      strictEqual(task1.getParent(), null);
      strictEqual(task2.getParent(), task1);
      strictEqual(task3.getParent(), task1);
      strictEqual(task4.getParent(), task3);
  
      ok(task1.append(task2).append(task2));
    });
  
    test('remove', function() {
      var task1 = new DivSugar.Task();
      var task2 = new DivSugar.Task();
      var task3 = new DivSugar.Task();
      var task4 = new DivSugar.Task();
      task1.append(task2);
      task1.append(task3);
      task3.append(task4);
      task1.remove(task3);
      strictEqual(task1.getParent(), null);
      strictEqual(task2.getParent(), task1);
      strictEqual(task3.getParent(), null);
      strictEqual(task4.getParent(), task3);
  
      ok(task1.remove(task2).remove(task2));
    });
  
    test('getTaskById', function() {
      var task1 = new DivSugar.Task('task1');
      var task2 = new DivSugar.Task('task2');
      var task3 = new DivSugar.Task('task3');
      var task4 = new DivSugar.Task('task4');
      task1.append(task2);
      task1.append(task3);
      task3.append(task4);
      strictEqual(task1.getTaskById('task4'), task4);
      strictEqual(task1.getTaskById('dummy'), null);
    });
  })();
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.