|
|
|
// ignore_for_file: prefer_const_constructors
|
|
|
|
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:pinball/assets_manager/assets_manager.dart';
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
group('AssetsManagerState', () {
|
|
|
|
test('can be instantiated', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(assetsCount: 0, loaded: 0),
|
|
|
|
isNotNull,
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('has the correct initial state', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState.initial(),
|
|
|
|
equals(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 0,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
group('progress', () {
|
|
|
|
test('returns 0 when no future is loaded', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 2,
|
|
|
|
loaded: 0,
|
|
|
|
).progress,
|
|
|
|
equals(0),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('returns the correct value when some of the futures are loaded', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 2,
|
|
|
|
loaded: 1,
|
|
|
|
).progress,
|
|
|
|
equals(0.5),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('returns the 1 when all futures are loaded', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 2,
|
|
|
|
loaded: 2,
|
|
|
|
).progress,
|
|
|
|
equals(1),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
group('copyWith', () {
|
|
|
|
test('returns a copy with the updated assetsCount', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 0,
|
|
|
|
).copyWith(assetsCount: 1),
|
|
|
|
equals(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 1,
|
|
|
|
loaded: 0,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('returns a copy with the updated loaded', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 0,
|
|
|
|
).copyWith(loaded: 1),
|
|
|
|
equals(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 1,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
test('supports value comparison', () {
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 0,
|
|
|
|
),
|
|
|
|
equals(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 0,
|
|
|
|
loaded: 0,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 1,
|
|
|
|
loaded: 0,
|
|
|
|
),
|
|
|
|
isNot(
|
|
|
|
equals(
|
|
|
|
AssetsManagerState(
|
|
|
|
assetsCount: 1,
|
|
|
|
loaded: 1,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|