// META: script=/webusb/resources/fake-devices.js
// META: script=/webusb/resources/usb-helpers.js
'use strict';

test(t => {
  let data_view = new DataView(Uint8Array.from([1, 2, 3, 4]).buffer);
  let result = new USBInTransferResult('ok', data_view);
  assert_equals(result.status, 'ok');
  assert_equals(result.data.getInt32(0), 16909060);
}, 'Can construct a USBInTransferResult');

test(t => {
  let result = new USBInTransferResult('stall');
  assert_equals(result.status, 'stall');
  assert_equals(result.data, null);

  result = new USBInTransferResult('babble', null);
  assert_equals(result.status, 'babble');
  assert_equals(result.data, null);
}, 'Can construct a USBInTransferResult without a DataView');

test(t => {
  assert_throws(TypeError(), () => new USBInTransferResult('invalid_status'));
}, 'Cannot construct USBInTransferResult with an invalid status');

test(t => {
  assert_throws(TypeError(), () => new USBInTransferResult());
}, 'Cannot construct USBInTransferResult without a status');
