blob: ec05059b357e3df52ad56fac43270c1559bde509 [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:test/test.dart';
import '../crdt_test_framework/evaluation_order.dart';
import '../crdt_test_framework/node.dart';
void main() {
setupLogger();
test('EvaluationOrder operator ==', () {
final n1 = new Node('1');
final n2 = new Node('2');
final n3 = new Node('3');
expect(new EvaluationOrder([n1, n2, n3]),
equals(new EvaluationOrder([n1, n2, n3])));
expect(new EvaluationOrder([n1, n2, n3]),
isNot(equals(new EvaluationOrder([n2, n1, n3]))));
});
final argumentErrorMatcher = throwsA(new TypeMatcher<ArgumentError>());
test('Node restricted name', () {
expect(() => new Node("f'o'o"), argumentErrorMatcher);
});
test('EvaluationOrder from list of ids', () {
final n1 = new Node('1');
final n2 = new Node('2');
final n3 = new Node('3');
final order132 =
new EvaluationOrder.fromIds(['n-1', 'n-3', 'n-2'], [n1, n2, n3]);
expect(order132, equals(new EvaluationOrder([n1, n3, n2])));
expect(() => new EvaluationOrder.fromIds(['n-1', 'n-2'], [n1, n2, n3]),
argumentErrorMatcher);
expect(
() => new EvaluationOrder.fromIds(
['n-1', 'n-2', 'n-3', 'n-1'], [n1, n2, n3]),
argumentErrorMatcher);
expect(
() => new EvaluationOrder.fromIds(['n-1', 'n-2', 'n-1'], [n1, n2, n3]),
argumentErrorMatcher);
expect(
new EvaluationOrder.fromIds(['n-1', 'n-3'], [n1, n2, n3],
allowPartial: true),
equals(new EvaluationOrder([n1, n3])));
});
}