tests_dicom_dicomTag.test.js

import {
  Tag,
  getTagFromDictionary,
  getTagFromKey,
  getTransferSyntaxUIDTag
} from '../../src/dicom/dicomTag';

/**
 * Tests for the 'dicom/dicomTag.js' file.
 */

/* global QUnit */
QUnit.module('dicom');

/**
 * Tests for {@link Tag}.
 *
 * @function module:tests/dicom~dicom-tag-class
 */
QUnit.test('DICOM tag class', function (assert) {
  // error cases
  assert.throws(function () {
    new Tag();
  },
  new Error('Cannot create tag with no group.'),
  'tag with undef group and element.');

  assert.throws(function () {
    new Tag('');
  },
  new Error('Cannot create tag with no group.'),
  'tag with empty group.');
  assert.throws(function () {
    new Tag('12');
  },
  new Error('Cannot create tag with badly sized group: 12'),
  'tag with bad group #0.');

  assert.throws(function () {
    new Tag('1234');
  },
  new Error('Cannot create tag with no element.'),
  'tag with undef element.');
  assert.throws(function () {
    new Tag('1234', '');
  },
  new Error('Cannot create tag with no element.'),
  'tag with empty element.');
  assert.throws(function () {
    new Tag('1234', '12');
  },
  new Error('Cannot create tag with badly sized element: 12'),
  'tag with bad element #0.');

  const tag00 = new Tag('1111', '2222');
  assert.notOk(tag00.equals(null), 'equals to null');
  assert.notOk(tag00.equals(), 'equals to undef');
  const tag01 = new Tag('1112', '2222');
  assert.notOk(tag00.equals(tag01), 'not equals #0');
  const tag02 = new Tag('1111', '2221');
  assert.notOk(tag00.equals(tag02), 'not equals #1');
  assert.ok(tag00.equals(tag00), 'equals #0');

  assert.equal(tag00.getKey(), '11112222', 'get key');

  assert.ok(getTagFromKey('11112222').equals(tag00),
    'getTagFromKey');
});

/**
 * Tests for {@link getTagFromDictionary}.
 *
 * @function module:tests/dicom~getTagFromDictionary
 */
QUnit.test('getTagFromDictionary', function (assert) {
  const tag00 = getTagFromDictionary();
  assert.equal(tag00, null, 'get undefined');
  const tag01 = getTagFromDictionary(null);
  assert.equal(tag01, null, 'get null');
  const tag02 = getTagFromDictionary('null');
  assert.equal(tag02, null, 'get non existing');

  // empty tag name...
  const tag03 = getTagFromDictionary('');
  const refTag03 = new Tag('0008', '0202');
  assert.ok(tag03.equals(refTag03), 'get empty');

  const refTag10 = getTransferSyntaxUIDTag();

  // extra space
  const tag04 = getTagFromDictionary('TransferSyntaxUID ');
  assert.equal(tag04, null, 'get with extra space');
  // bad case
  const tag05 = getTagFromDictionary('TransferSyntaxUid');
  assert.equal(tag05, null, 'get with bad case');

  // working case
  const tag10 = getTagFromDictionary('TransferSyntaxUID');
  assert.ok(tag10.equals(refTag10), 'get test #0');
});