|
|
- /*
- * node-rdkafka - Node.js wrapper for RdKafka C/C++ library
- *
- * Copyright (c) 2016 Blizzard Entertainment
- *
- * This software may be modified and distributed under the terms
- * of the MIT license. See the LICENSE.txt file for details.
- */
-
- var TopicPartition = require('../lib/topic-partition');
- var Topic = require('../lib/topic');
-
- var t = require('assert');
-
- module.exports = {
- 'TopicPartition': {
- 'is a function': function() {
- t.equal(typeof(TopicPartition), 'function');
- },
- 'be constructable': function() {
- var toppar = new TopicPartition('topic', 1, 0);
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.offset, 0);
- t.equal(toppar.partition, 1);
- },
- 'be creatable using 0 as the partition': function() {
- var toppar = new TopicPartition('topic', 0, 0);
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.offset, 0);
- t.equal(toppar.partition, 0);
- },
- 'throw if partition is null or undefined': function() {
- t.throws(function() {
- var tp = new TopicPartition('topic', undefined, 0);
- });
-
- t.throws(function() {
- var tp = new TopicPartition('topic', null, 0);
- });
- },
- 'sets offset to stored by default': function() {
- var toppar = new TopicPartition('topic', 1);
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_STORED);
- },
- 'sets offset to end if "end" is provided"': function() {
- var toppar = new TopicPartition('topic', 1, 'end');
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_END);
- },
- 'sets offset to end if "latest" is provided"': function() {
- var toppar = new TopicPartition('topic', 1, 'latest');
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_END);
- },
- 'sets offset to beginning if "beginning" is provided"': function() {
- var toppar = new TopicPartition('topic', 1, 'beginning');
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_BEGINNING);
- },
- 'sets offset to start if "beginning" is provided"': function() {
- var toppar = new TopicPartition('topic', 1, 'beginning');
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_BEGINNING);
- },
- 'sets offset to stored if "stored" is provided"': function() {
- var toppar = new TopicPartition('topic', 1, 'stored');
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_STORED);
- },
- 'throws when an invalid special offset is provided"': function() {
- t.throws(function() {
- var toppar = new TopicPartition('topic', 1, 'fake');
- });
- }
- },
- 'TopicPartition.map': {
- 'is a function': function() {
- t.equal(typeof(TopicPartition.map), 'function');
- },
- 'converts offsets inside the array': function() {
- var result = TopicPartition.map([{ topic: 'topic', partition: 1, offset: 'stored' }]);
- var toppar = result[0];
-
- t.equal(toppar.topic, 'topic');
- t.equal(toppar.partition, 1);
- t.equal(toppar.offset, Topic.OFFSET_STORED);
- },
- },
- };
|