forked from flame-engine/flame
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
5 changed files
with
224 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
{ | ||
"frames": { | ||
"chopper 0.aseprite": { | ||
"frame": { | ||
"x": 0, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": { | ||
"x": 0, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"sourceSize": { | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"duration": 100 | ||
}, | ||
"chopper 1.aseprite": { | ||
"frame": { | ||
"x": 48, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": { | ||
"x": 0, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"sourceSize": { | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"duration": 100 | ||
}, | ||
"chopper 2.aseprite": { | ||
"frame": { | ||
"x": 96, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": { | ||
"x": 0, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"sourceSize": { | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"duration": 100 | ||
}, | ||
"chopper 3.aseprite": { | ||
"frame": { | ||
"x": 144, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"rotated": false, | ||
"trimmed": false, | ||
"spriteSourceSize": { | ||
"x": 0, | ||
"y": 0, | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"sourceSize": { | ||
"w": 48, | ||
"h": 48 | ||
}, | ||
"duration": 100 | ||
} | ||
}, | ||
"meta": { | ||
"app": "http://www.aseprite.org/", | ||
"version": "1.3-dev", | ||
"image": "/home/erick/projetos/gamedev/airplane-resource-pack/chopper.png", | ||
"format": "RGBA8888", | ||
"size": { | ||
"w": 192, | ||
"h": 48 | ||
}, | ||
"scale": "1", | ||
"frameTags": [ | ||
], | ||
"layers": [ | ||
{ | ||
"name": "body", | ||
"opacity": 255, | ||
"blendMode": "normal" | ||
}, | ||
{ | ||
"name": "rotor", | ||
"opacity": 255, | ||
"blendMode": "normal" | ||
}, | ||
{ | ||
"name": "stabilizer", | ||
"opacity": 255, | ||
"blendMode": "normal" | ||
} | ||
], | ||
"slices": [ | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This is sample text file for AssetsCache Unit testing. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
import 'package:flame/cache.dart'; | ||
import 'package:flame/flame.dart'; | ||
import 'package:flame_test/flame_test.dart'; | ||
import 'package:flutter/services.dart'; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
import 'package:mocktail/mocktail.dart'; | ||
|
||
import '../fixtures/fixture_reader.dart'; | ||
|
||
class _AssetsCacheMock extends Mock implements AssetsCache {} | ||
|
||
void main() { | ||
TestWidgetsFlutterBinding.ensureInitialized(); | ||
|
||
group('AssetsCache', () { | ||
test('readFile', () async { | ||
final assetsCache = AssetsCache(prefix: ''); | ||
final fileName = fixture('test_text_file.txt').path; | ||
final file = await assetsCache.readFile(fileName); | ||
expect(file, isA<String>()); | ||
|
||
expect( | ||
() async => | ||
assetsCache.readBinaryFile(fixture('test_text_file.txt').path), | ||
failsAssert('"$fileName" was previously loaded as a text file'), | ||
); | ||
}); | ||
|
||
test('readJson', () async { | ||
final assetsCache = AssetsCache(prefix: ''); | ||
final file = await assetsCache.readJson(fixture('chopper.json').path); | ||
expect(file, isA<Map<String, dynamic>>()); | ||
}); | ||
|
||
test('readBinaryFile', () async { | ||
final assetsCache = AssetsCache(prefix: ''); | ||
final fileName = fixture('caveace.fa').path; | ||
final file = await assetsCache.readBinaryFile(fileName); | ||
expect(file, isA<Uint8List>()); | ||
|
||
expect( | ||
() async => assetsCache.readFile(fixture('caveace.fa').path), | ||
failsAssert('"$fileName" was previously loaded as a binary file'), | ||
); | ||
}); | ||
|
||
test('clear', () async { | ||
final assetsCache = AssetsCache(prefix: ''); | ||
|
||
final fileName = fixture('test_text_file.txt').path; | ||
final file = await assetsCache.readFile(fileName); | ||
expect(file, isA<String>()); | ||
|
||
final assetsCacheMock = _AssetsCacheMock(); | ||
assetsCacheMock.clear(fileName); | ||
verify(() => assetsCacheMock.clear(fileName)).called(1); | ||
}); | ||
|
||
test('clearCache', () async { | ||
final assetsCache = AssetsCache(prefix: ''); | ||
|
||
final fileName = fixture('test_text_file.txt').path; | ||
final file = await assetsCache.readFile(fileName); | ||
expect(file, isA<String>()); | ||
|
||
final assetsCacheMock = _AssetsCacheMock(); | ||
assetsCacheMock.clearCache(); | ||
verify(assetsCacheMock.clearCache).called(1); | ||
|
||
// If all file was not clear from cache then it will not readBinaryFile | ||
assetsCache.clearCache(); | ||
final fileTxtAsBinary = await assetsCache.readBinaryFile(fileName); | ||
expect(fileTxtAsBinary, isA<Uint8List>()); | ||
}); | ||
|
||
testWithFlameGame( | ||
'prefix on assets can not be changed', | ||
(game) async { | ||
game.assets = AssetsCache(); | ||
expect(game.assets.prefix, 'assets/'); | ||
}, | ||
); | ||
|
||
testWithFlameGame( | ||
'Game.assets is same as Flame.assets', | ||
(game) async { | ||
expect(game.assets, equals(Flame.assets)); | ||
}, | ||
); | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import 'dart:io'; | ||
|
||
File fixture(String name) { | ||
var dir = Directory.current.path; | ||
if (dir.endsWith('/test')) { | ||
dir = dir.replaceAll('/test', ''); | ||
} | ||
return File('$dir/test/_resources/$name'); | ||
} | ||
|
||
String fixtureForString(String name) => | ||
File('test/fixtures/$name').readAsStringSync(); |