| | 11 | [Test] |
|---|
| | 12 | public function shouldBeSymmetrical():void |
|---|
| | 13 | { |
|---|
| | 14 | var saverData:Object = {}; |
|---|
| | 15 | var saver:ApplicationData = newApplicationData(saverData); |
|---|
| | 16 | var bytes:ByteArray = new ByteArray(); |
|---|
| | 17 | var fromBytes:ByteArray = new ByteArray(); |
|---|
| | 18 | var toBytes:ByteArray = new ByteArray(); |
|---|
| | 19 | fromBytes.writeUTFBytes(VALUE); |
|---|
| | 20 | saver.save(bytes, fromBytes); |
|---|
| | 21 | bytes.position = 0; |
|---|
| | 22 | var loaderData:Object = {}; |
|---|
| | 23 | var loader:ApplicationData = newApplicationData(loaderData); |
|---|
| | 24 | var controller:FakeController = loaderData.controllers[0]; |
|---|
| | 25 | loader.load(bytes, toBytes); |
|---|
| | 26 | // should set the end of log after ApplicationData#load |
|---|
| | 27 | Assert.assertEquals(0, toBytes.bytesAvailable); |
|---|
| | 28 | Assert.assertEquals(VALUE.length, toBytes.position); |
|---|
| | 29 | // reset result's position |
|---|
| | 30 | toBytes.position = 0; |
|---|
| | 31 | Assert.assertEquals(VALUE, toBytes.readUTFBytes(VALUE.length)); |
|---|
| | 32 | Assert.assertEquals(controller.name, controller.value); |
|---|
| | 33 | } |
|---|
| | 34 | |
|---|
| | 35 | private function newApplicationData(data:Object):ApplicationData |
|---|
| | 36 | { |
|---|
| | 37 | var layers:LayerBitmapCollection = data.layers |
|---|
| | 38 | || new LayerBitmapCollection(1, 1); |
|---|
| | 39 | var undo:UndoStack = data.undo |
|---|
| | 40 | || new UndoStack(layers); |
|---|
| | 41 | var controllers:Vector.<IController> = data.controllers |
|---|
| | 42 | || new Vector.<IController>(1, true); |
|---|
| | 43 | var controller:FakeController = new FakeController(); |
|---|
| | 44 | controllers[0] = controller; |
|---|
| | 45 | data.layers = layers; |
|---|
| | 46 | data.undo = undo; |
|---|
| | 47 | data.controllers = controllers; |
|---|
| | 48 | return new ApplicationData(layers, undo, controllers); |
|---|
| | 49 | } |
|---|
| | 50 | |
|---|
| | 51 | private static const VALUE:String = "This is a test."; |
|---|