Monitor Min v0.5.7

Show:

File: test/ServerTest.js

// ServerTest.js (c) 2010-2013 Loren West and other contributors
// May be freely distributed under the MIT license.
// For further details and documentation:
// http://lorenwest.github.com/monitor-min
(function(root){

  // Dependencies
  var Monitor = require('../lib/index'),
      Server = Monitor.Server, Backbone = Monitor.Backbone;

  /**
  * Unit tests for the <a href="Server.html">Server</a> class.
  * @class ServerTest
  */

  /**
  * Test group for baseline Server functionality
  *
  * @method Server
  */
  module.exports['Server'] = {

    setUp: function(callback) {callback();},
    tearDown: function(callback) {callback();},

    /**
    * Tests that Server classes are in place
    * @method Server-Classes
    */
    Classes: function(test) {
      test.ok(Server.prototype instanceof Backbone.Model, 'The Server data model is in place');
      test.ok(Server.List.prototype instanceof Backbone.Collection, 'The Server.List collection is in place');
      test.done();
    },

    /**
    * Start and Stop a server
    * @method Server-StartStop
    */
    StartStop: function(test) {
      var server = new Monitor.Server();
      server.on('start', function() {
        test.ok(server.get('port') > 0, 'The server started accepting connections on a port');
        server.stop(function(){
          test.ok(true, 'The server has stopped');
          test.done();
        });
      });
      server.start();
    },

    /**
    * Verify multiple servers start on different ports
    * @method Server-MultipleStartStop
    */
    MultipleStartStop: function(test) {
      var server1 = new Monitor.Server(), port1, port2;
      server1.on('start', function() {
        port1 = server1.get('port');
        test.ok(port1 >= Monitor.Config.MonitorMin.serviceBasePort, 'The server started in the correct port range');
        var server2 = new Monitor.Server();
        server2.on('start', function() {
          port2 = server2.get('port');
          test.notEqual(port1, port2, 'Two servers started on two different ports');
          server1.stop(function(){
            server2.stop(function(){
              test.ok(true, 'Both servers have stopped');
              test.done();
            });
          });
        });
        server2.start();
      });
      server1.start();
    }

  };

}(this));