blob: fe4cecca6c766076d534d53abb104afef4c96a78 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// ignore_for_file: implementation_imports
import 'package:lib.app.dart/logging.dart';
import 'package:sledge/src/document/values/set_value.dart';
import 'package:test/test.dart';
import 'set_api_tester.dart';
void main() {
setupLogger();
group('Set API coverage', () {
SetApiTester<SetValue>(() => SetValue<int>())
..testApi()
..testObserver();
});
test('SetValue add and contains.', () {
var s = SetValue<int>();
expect(s.contains(0), equals(false));
expect(s.add(0), equals(true));
expect(s.contains(0), equals(true));
});
test('SetValue add twice and contains.', () {
var s = SetValue<int>();
expect(s.contains(0), equals(false));
expect(s.add(0), equals(true));
expect(s.add(0), equals(false));
expect(s.contains(0), equals(true));
});
test('SetValue remove.', () {
var s = SetValue<int>();
expect(s.remove(2), equals(false));
expect(s.add(2), equals(true));
expect(s.remove(2), equals(true));
expect(s.remove(2), equals(false));
expect(s.add(2), equals(true));
});
test('SetValue add, put, contains, remove.', () {
var s = SetValue<String>();
expect(s.contains('-'), equals(false));
expect(s.add('-'), equals(true));
expect(s.add('-'), equals(false));
s.getChange();
expect(s.add('-'), equals(false));
expect(s.remove('-'), equals(true));
expect(s.remove('-'), equals(false));
s.getChange();
expect(s.remove('-'), equals(false));
expect(s.add('-'), equals(true));
expect(s.add('-'), equals(false));
});
}