text: var chai = require('chai');
  var assert = chai.assert;
  var RequestManager = require('../lib/web3/requestmanager');
  var FakeHttpProvider = require('./helpers/FakeHttpProvider');
  
  // TODO: handling errors!
  // TODO: validation of params!
  
  describe('lib/web3/requestmanager', function () {
      describe('send', function () {
          it('should return expected result synchronously', function () {
              var provider = new FakeHttpProvider();
              var manager = RequestManager.getInstance();
              manager.setProvider(provider);
              var expected = 'hello_world';
              provider.injectResult(expected);
              
              var result = manager.send({
                  method: 'test',
                  params: [1,2,3]
              });
  
              assert.equal(expected, result);
          });
  
          it('should return expected result asynchronously', function (done) {
              var provider = new FakeHttpProvider();
              var manager = RequestManager.getInstance();
              manager.setProvider(provider);
              var expected = 'hello_world';
              provider.injectResult(expected);
              
              manager.sendAsync({
                  method: 'test',
                  params: [1,2,3]
              }, function (error, result) {
                  assert.equal(error, null);
                  assert.equal(expected, result);
                  done();
              });
          });
      });
  });
  
  