blob: c42d68fb82605a2bd51f910ce173393379f99ef0 [file] [log] [blame]
import 'package:tar/tar.dart';
import 'package:test/test.dart';
void main() {
test('operator |', () {
expect(TarFormat.gnu | TarFormat.star, _isFormat('GNU or STAR'));
expect(TarFormat.star | TarFormat.gnu, _isFormat('GNU or STAR'));
expect(TarFormat.v7 | TarFormat.pax | TarFormat.star,
_isFormat('V7 or PAX or STAR'));
});
test('has', () {
expect(TarFormat.gnu.has(TarFormat.gnu), isTrue);
expect(TarFormat.gnu.has(TarFormat.v7), isFalse);
expect(TarFormat.gnu.has(TarFormat.v7 | TarFormat.gnu), isFalse);
expect((TarFormat.v7 | TarFormat.gnu).has(TarFormat.gnu), isTrue);
});
test('mayOnlyBe', () {
expect(TarFormat.gnu.mayOnlyBe(TarFormat.v7), _isInvalid);
expect(TarFormat.gnu.mayOnlyBe(TarFormat.gnu), TarFormat.gnu);
expect((TarFormat.gnu | TarFormat.pax).mayOnlyBe(TarFormat.pax),
TarFormat.pax);
expect(
(TarFormat.gnu | TarFormat.pax | TarFormat.v7)
.mayOnlyBe(TarFormat.pax | TarFormat.v7),
_isFormat('V7 or PAX'),
);
expect((TarFormat.gnu | TarFormat.pax).mayOnlyBe(TarFormat.v7), _isInvalid);
});
}
TypeMatcher<MaybeTarFormat> _isFormat(String representation) {
return isA<MaybeTarFormat>()
.having((e) => e.toString(), 'toString()', representation);
}
TypeMatcher<MaybeTarFormat> get _isInvalid {
return _isFormat('Invalid').having((e) => e.valid, 'valid', isFalse);
}