| 1 |
package org.libspark.gunyarapaint.framework |
|---|
| 2 |
{ |
|---|
| 3 |
import flash.display.BlendMode; |
|---|
| 4 |
import flash.display.CapsStyle; |
|---|
| 5 |
import flash.display.DisplayObject; |
|---|
| 6 |
import flash.display.JointStyle; |
|---|
| 7 |
import flash.display.Shape; |
|---|
| 8 |
import flash.display.Sprite; |
|---|
| 9 |
|
|---|
| 10 |
import org.flexunit.Assert; |
|---|
| 11 |
|
|---|
| 12 |
public class PainterTest |
|---|
| 13 |
{ |
|---|
| 14 |
[Test] |
|---|
| 15 |
public function ペンの設定():void |
|---|
| 16 |
{ |
|---|
| 17 |
var pen:Pen = new Pen(); |
|---|
| 18 |
pen.blendMode = BlendMode.ADD; |
|---|
| 19 |
pen.capsStyle = CapsStyle.SQUARE; |
|---|
| 20 |
pen.color = 0xffff00; |
|---|
| 21 |
pen.jointStyle = JointStyle.BEVEL; |
|---|
| 22 |
pen.miterLimit = 8; |
|---|
| 23 |
pen.pixelHinting = false; |
|---|
| 24 |
pen.thickness = 8; |
|---|
| 25 |
var cc:Painter = newPainter(); |
|---|
| 26 |
cc.pen = pen; |
|---|
| 27 |
var fakedPen:Pen = FakePaintEngine.fakedPen; |
|---|
| 28 |
Assert.assertStrictlyEquals(fakedPen.blendMode, pen.blendMode); |
|---|
| 29 |
Assert.assertStrictlyEquals(fakedPen.capsStyle, pen.capsStyle); |
|---|
| 30 |
Assert.assertStrictlyEquals(fakedPen.color, pen.color); |
|---|
| 31 |
Assert.assertStrictlyEquals(fakedPen.jointStyle, pen.jointStyle); |
|---|
| 32 |
Assert.assertStrictlyEquals(fakedPen.miterLimit, pen.miterLimit); |
|---|
| 33 |
Assert.assertStrictlyEquals(fakedPen.pixelHinting, pen.pixelHinting); |
|---|
| 34 |
Assert.assertStrictlyEquals(fakedPen.thickness, pen.thickness); |
|---|
| 35 |
} |
|---|
| 36 |
|
|---|
| 37 |
[Test] |
|---|
| 38 |
public function 座標の移動():void |
|---|
| 39 |
{ |
|---|
| 40 |
var x:int = 42; |
|---|
| 41 |
var y:int = 124; |
|---|
| 42 |
var cc:Painter = newPainter(); |
|---|
| 43 |
cc.moveTo(x, y); |
|---|
| 44 |
Assert.assertStrictlyEquals(x, FakePaintEngine.point.x); |
|---|
| 45 |
Assert.assertStrictlyEquals(y, FakePaintEngine.point.y); |
|---|
| 46 |
} |
|---|
| 47 |
|
|---|
| 48 |
[Test] |
|---|
| 49 |
public function 円の描写():void |
|---|
| 50 |
{ |
|---|
| 51 |
var radius:Number = 3.14; |
|---|
| 52 |
var cc:Painter = newPainter(); |
|---|
| 53 |
cc.drawCircle(radius); |
|---|
| 54 |
Assert.assertStrictlyEquals(radius, FakePaintEngine.radius); |
|---|
| 55 |
} |
|---|
| 56 |
|
|---|
| 57 |
[Test] |
|---|
| 58 |
public function 長方形の描写():void |
|---|
| 59 |
{ |
|---|
| 60 |
var x:int = 42; |
|---|
| 61 |
var y:int = 124; |
|---|
| 62 |
var width:int = 256; |
|---|
| 63 |
var height:int = 512; |
|---|
| 64 |
var cc:Painter = newPainter(); |
|---|
| 65 |
cc.drawRect(x, y, width, height); |
|---|
| 66 |
Assert.assertStrictlyEquals(x, FakePaintEngine.rectangle.x); |
|---|
| 67 |
Assert.assertStrictlyEquals(y, FakePaintEngine.rectangle.y); |
|---|
| 68 |
Assert.assertStrictlyEquals(width, FakePaintEngine.rectangle.width); |
|---|
| 69 |
Assert.assertStrictlyEquals(height, FakePaintEngine.rectangle.height); |
|---|
| 70 |
} |
|---|
| 71 |
|
|---|
| 72 |
[Test] |
|---|
| 73 |
public function 楕円の描写():void |
|---|
| 74 |
{ |
|---|
| 75 |
var x:int = 512; |
|---|
| 76 |
var y:int = 256; |
|---|
| 77 |
var width:int = 128; |
|---|
| 78 |
var height:int = 64; |
|---|
| 79 |
var cc:Painter = newPainter(); |
|---|
| 80 |
cc.drawEllipse(x, y, width, height); |
|---|
| 81 |
Assert.assertStrictlyEquals(x, FakePaintEngine.rectangle.x); |
|---|
| 82 |
Assert.assertStrictlyEquals(y, FakePaintEngine.rectangle.y); |
|---|
| 83 |
Assert.assertStrictlyEquals(width, FakePaintEngine.rectangle.width); |
|---|
| 84 |
Assert.assertStrictlyEquals(height, FakePaintEngine.rectangle.height); |
|---|
| 85 |
} |
|---|
| 86 |
|
|---|
| 87 |
[Test] |
|---|
| 88 |
public function 塗りつぶし():void |
|---|
| 89 |
{ |
|---|
| 90 |
var color:uint = uint.MAX_VALUE; |
|---|
| 91 |
var alpha:Number = 0.5; |
|---|
| 92 |
var cc:Painter = newPainter(); |
|---|
| 93 |
cc.beginFill(color, alpha); |
|---|
| 94 |
cc.endFill(); |
|---|
| 95 |
Assert.assertStrictlyEquals(color, FakePaintEngine.color); |
|---|
| 96 |
Assert.assertStrictlyEquals(alpha, FakePaintEngine.alpha); |
|---|
| 97 |
Assert.assertTrue(FakePaintEngine.filled); |
|---|
| 98 |
} |
|---|
| 99 |
|
|---|
| 100 |
[Test] |
|---|
| 101 |
public function 描写レイヤーの追加と削除():void |
|---|
| 102 |
{ |
|---|
| 103 |
var child:DisplayObject; |
|---|
| 104 |
var cc:Painter = newPainter(); |
|---|
| 105 |
// 描写セッションの開始されると一時 Sprite が作成される |
|---|
| 106 |
// その為、上に現在のレイヤーが、下に描写バッファが入る |
|---|
| 107 |
cc.startDrawingSession(); |
|---|
| 108 |
child = cc.view.getChildAt(0); |
|---|
| 109 |
Assert.assertTrue(child is Sprite); |
|---|
| 110 |
var sprite:Sprite = Sprite(child); |
|---|
| 111 |
Assert.assertTrue(sprite.getChildAt(0) is LayerBitmap); |
|---|
| 112 |
Assert.assertTrue(sprite.getChildAt(1) is Shape); |
|---|
| 113 |
// 描写セッションが終了すると一時 Sprite が削除され、現在のレイヤーに戻される |
|---|
| 114 |
cc.stopDrawingSession(); |
|---|
| 115 |
child = cc.view.getChildAt(0); |
|---|
| 116 |
Assert.assertTrue(child is LayerBitmap); |
|---|
| 117 |
} |
|---|
| 118 |
|
|---|
| 119 |
private function newPainter():Painter |
|---|
| 120 |
{ |
|---|
| 121 |
return new Painter(1, 1, Painter.PAINTER_LOG_VERSION, new FakePaintEngine()); |
|---|
| 122 |
} |
|---|
| 123 |
} |
|---|
| 124 |
} |
|---|