 module.exports =
 
   'systems are started and stopped in the most efficient order': (test) ->
+    test.expect 28
 
     ###################################################################################
     # services

          Promise.delay(100)
      serverOne:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      serverTwo:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      serverThree:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      elasticSearch:
        start: ->
          test.ok starting.isEqual(
            new Set(['redisOne', 'redisTwo', 'postgres', 'elasticSearch', 'mailAPI'])
          )
          test.ok running.isEqual(
            new Set
          )
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      mailAPI:
        start: ->
          test.ok starting.isEqual(
            new Set(['redisOne', 'redisTwo', 'postgres', 'elasticSearch', 'mailAPI'])
          )
          test.ok running.isEqual(
            new Set
          )
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      cache:
        start: ->
          test.ok starting.isEqual(
            new Set(['postgres', 'elasticSearch', 'mailAPI', 'cache'])
          )
          test.ok running.isEqual(
            new Set(['redisOne', 'redisTwo'])
          )
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      postgres:
        start: ->
          test.ok starting.isEqual(
            new Set(['redisOne', 'redisTwo', 'postgres', 'elasticSearch', 'mailAPI'])
          )
          test.ok running.isEqual(
            new Set
          )
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      loadBalancer:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      workerOne:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)
      workerTwo:
        start: ->
          Promise.delay(100)
        stop: ->
          Promise.delay(100)


          Promise.delay(100)
      redisTwo:
        start: ->
          test.ok starting.equals(
            new Set('redisOne', 'redisTwo', 'postgres', 'elasticSearch', 'mailAPI')
          )
          test.ok running.equals(
            new Set
          )
          Promise.delay(20)
