blob: 27f271e09e9e31dc22b250beeabe0e93bb9b6db0 [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, avoid_catches_without_on_clauses
import 'package:lib.app.dart/logging.dart';
import 'package:sledge/src/document/values/set_value.dart';
import 'package:test/test.dart';
import '../crdt_test_framework/crdt_test_framework.dart';
// Wraps construction of Fleet of SetValues.
class SetFleetFactory<E> {
const SetFleetFactory();
// Returns Fleet of [count] SetValues.
Fleet<SetValue<E>> newFleet(int count) {
return new Fleet<SetValue<E>>(count, (index) => new SetValue<E>());
}
}
const SetFleetFactory<int> intSetFleetFactory = const SetFleetFactory<int>();
void main() async {
setupLogger();
test('Test with framework', () async {
final fleet = intSetFleetFactory.newFleet(2)
..runInTransaction(0, (SetValue<int> s) async {
s..add(1)..add(2);
})
..synchronize([0, 1])
..runInTransaction(1, (SetValue<int> s) async {
expect(s, unorderedEquals([1, 2]));
s
..remove(1)
..add(3);
})
..synchronize([0, 1])
..runInTransaction(0, (SetValue<int> s) async {
expect(s, unorderedEquals([2, 3]));
});
await fleet.testSingleOrder();
});
}