package test.services.testCase { import flash.events.Event; import module.statistics.model.entity.Programmer; import module.statistics.service.proxy.StatisticsService; import mx.rpc.AsyncToken; import mx.rpc.events.ResultEvent; import net.digitalprimates.fluint.async.AsyncHandler; import net.digitalprimates.fluint.tests.TestCase; public class TestStatisticsServiceOperations extends TestCase { private var service : StatisticsService; private var programmer : Programmer; private var data : Object; public function TestStatisticsServiceOperations() { super(); } override protected function setUp() : void { service = new StatisticsService(); programmer = new Programmer("John", "Dow", "Software Architect", "photos/0.jpeg"); data = new Object(); } override protected function tearDown() : void { programmer = null data = null; } [Test] public function getProgrammerStatisticsOperation() : void { var asyncHandler : Function = asyncHandler(handleGetProgrammerStatisticsReady, 1000, data, handleTimeout); addEventListener("getProgrammerStatisticsReady", asyncHandler, false, 0, true); service.getProgrammerStatistics(programmer, getProgrammerStatisticsResultHandler); } private function getProgrammerStatisticsResultHandler(e : ResultEvent, token : AsyncToken = null) : void { data.resultEvent = e; data.token = token; dispatchEvent(new Event("getProgrammerStatisticsReady")); } private function handleGetProgrammerStatisticsReady(e : Event, passThroughData : Object) : void { var result : Array = ResultEvent(passThroughData.resultEvent).result as Array; assertNotNull(result); assertTrue(result.length == 12); } private function handleTimeout(passThroughData : Object) : void { fail("Timeout reached before result"); } } }