describe('with a query with a limit and offset past the end', function () {
          var results = AsyncIterator.empty();
          var settings = {
            datasource: { },
            fragment: {
              pageUrl:         'mypage',
              firstPageUrl:    'myfirst',
              nextPageUrl:     'mynext',
              previousPageUrl: 'myprevious',
            },
            query: { limit: 100, offset: 1135 },
          };
          var response = test.createStreamCapture();
          before(function (done) {
            settings.results = results;
            response.getHeader = sinon.stub().returns(format);
            view.render(settings, {}, response, done);
            results.setProperty('metadata', { totalCount: 1234 });
          });

          it('should write a first page link', function () {
            response.buffer.should.contain('myfirst');
          });

          it('should not write a next page link', function () {
            response.buffer.should.not.contain('mynext');
          });

          it('should write a previous page link', function () {
            response.buffer.should.contain('myprevious');
          });
        });
  describe('A SortIterator with an empty source', function () {
    var iterator = new SortIterator(AsyncIterator.empty());

    it('should have ended', function () {
      iterator.ended.should.be.true;
    });
  });
        describe('with an empty triple stream', function () {
          var results = AsyncIterator.empty();
          var response = test.createStreamCapture();
          before(function (done) {
            settings.results = results;
            response.getHeader = sinon.stub().returns(format);
            view.render(settings, {}, response, done);
            results.setProperty('metadata', { totalCount: 1234 });
          });

          it('should only write data source metadata', function () {
            response.buffer.should.equal(readAsset('empty-fragment'));
          });
        });
 function createSource() { return AsyncIterator.empty(); }