topic: function() {
   return clientCredentials(function(client, done) {
     if (client.id == 'c123') {
       done(null, 's3cr1t', 'getANotehr')
     } else {
       return done(new Error('something is wrong'));
     }
   });
 },
 topic: function() {
   return clientCredentials({ userProperty: 'otheruser' }, function(client, done) {
     if (client.id == 'c123') {
       done(null, 's3cr1t')
     } else {
       return done(new Error('something is wrong'));
     }
   });
 },
 topic: function() {
   return clientCredentials(function(client, done) {
     if (client.id == 'c123') {
       done(null, 's3cr1t', 'blahblag', { 'token_type': 'foo', 'expires_in': 3600 })
     } else {
       return done(new Error('something is wrong'));
     }
   });
 },
 topic: function() {
   return clientCredentials({ scopeSeparator: [' ', ','] }, function(client, scope, done) {
     if (client.id == 'c123' &&
         scope.length == 2 && scope[0] == 'read' && scope[1] == 'write') {
       done(null, 's3cr1t')
     } else {
       return done(new Error('something is wrong'));
     }
   });
 },
 topic: function() {
   return clientCredentials(function(client, scope, done) {
     if (client.id == 'c123' &&
         scope.length == 1 && scope[0] == 'read') {
       done(null, 's3cr1t')
     } else {
       return done(new Error('something is wrong'));
     }
   });
 },
 assert.throws(function() { clientCredentials() });
 topic: function() {
   return clientCredentials(function(client, done) {
     done(null, 's3cr1t')
   });
 },
 topic: function() {
   return clientCredentials(function(client, done) {
     return done(new Error('something went wrong'));
   });
 },
 topic: function() {
   return clientCredentials(function(client, done) {
     return done(null, false);
   });
 },
 topic: function() {
   return clientCredentials(function() {});
 },