From c2578b595d630bd9024b74f9efbfe6d57ed99916 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Fri, 9 May 2014 10:47:54 -0400 Subject: [PATCH 1/2] ProcessMaker-BE "Exporter (PHPUnit)" - PHPUnit for processmaker/workflow/engine/src/ProcessMaker/Exporter/XmlExporter.php --- .../ProcessMaker/Exporter/XmlExporterTest.php | 165 ++++++++++++++++-- 1 file changed, 155 insertions(+), 10 deletions(-) diff --git a/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php b/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php index a3c0bb312..39c00a139 100644 --- a/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php +++ b/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php @@ -1,11 +1,8 @@ build(); - $exporter->saveExport("/home/erik/out.xml"); + self::$projectName = \ProcessMaker\Util\Common::generateUID(); + + $json = " + { + \"prj_name\": \"" . self::$projectName . "\", + \"prj_author\": \"00000000000000000000000000000001\", + \"diagrams\": [ + { + \"dia_uid\": \"\", + \"activities\": [], + \"events\": [], + \"gateways\": [], + \"flows\": [], + \"artifacts\": [], + \"laneset\": [], + \"lanes\": [] + } + ] + } + "; + + $arrayResult = \ProcessMaker\Project\Adapter\BpmnWorkflow::createFromStruct(json_decode($json, true)); + + self::$projectUid = $arrayResult[0]["new_uid"]; + self::$fileXml = PATH_DOCUMENT . "output" . PATH_SEP . self::$projectUid . ".xml"; + + self::$exporter = new \ProcessMaker\Exporter\XmlExporter(self::$projectUid); } -} \ No newline at end of file + + /** + * Delete project + * + * @coversNothing + */ + public static function tearDownAfterClass() + { + $bpmnWf = \ProcessMaker\Project\Adapter\BpmnWorkflow::load(self::$projectUid); + + $bpmnWf->remove(); + + unlink(self::$fileXml); + } + + /** + * Test export + * + * @covers \ProcessMaker\Exporter\XmlExporter::export + * + * @return string + */ + public function testExport() + { + $strXml = self::$exporter->export(); + + $this->assertTrue(is_string($strXml)); + $this->assertNotEmpty($strXml); + + return $strXml; + } + + /** + * Test build + * + * @covers \ProcessMaker\Exporter\XmlExporter::build + * + * @depends testExport + * @param string $strXml Data xml + */ + public function testBuild($strXml) + { + //DOMDocument + $doc = new \DOMDocument(); + $doc->loadXML($strXml); + + $nodeRoot = $doc->getElementsByTagName("ProcessMaker-Project")->item(0); + $uid = ""; + + //Node meta + $nodeMeta = $nodeRoot->getElementsByTagName("metadata")->item(0)->getElementsByTagName("meta"); + + $this->assertNotEmpty($nodeMeta); + + foreach ($nodeMeta as $value) { + $node = $value; + + if ($node->hasAttribute("key") && $node->getAttribute("key") == "uid") { + $uid = $node->nodeValue; + break; + } + } + + $this->assertEquals(self::$projectUid, $uid); + + //Node definition + $nodeDefinition = $nodeRoot->getElementsByTagName("definition"); + + $this->assertNotEmpty($nodeDefinition); + + foreach ($nodeDefinition as $value) { + $node = $value; + + if ($node->hasAttribute("class")) { + $this->assertTrue(in_array($node->getAttribute("class"), array("BPMN", "workflow"))); + } + } + } + + /** + * Test saveExport + * + * @covers \ProcessMaker\Exporter\XmlExporter::saveExport + */ + public function testSaveExport() + { + self::$exporter->saveExport(self::$fileXml); + + $this->assertTrue(file_exists(self::$fileXml)); + } + + /** + * Test getTextNode + * + * @covers \ProcessMaker\Exporter\XmlExporter::getTextNode + */ + public function testGetTextNode() + { + //Is not implemented. Metodo getTextNode() is private + } + + /** + * Test exception for invalid project uid + * + * @covers \ProcessMaker\Exporter\XmlExporter::__construct + * + * @expectedException Exception + * @expectedExceptionMessage Project "ProcessMaker\Project\Bpmn" with UID: 0, does not exist. + */ + public function test__constructExceptionInvalidProjectUid() + { + $exporter = new \ProcessMaker\Exporter\XmlExporter("0"); + } +} + From e289d4b8a79110a4bb62e2bf72212a0bb7542419 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Fri, 9 May 2014 10:53:33 -0400 Subject: [PATCH 2/2] ProcessMaker-BE "Exporter (PHPUnit)" - PHPUnit for processmaker/workflow/engine/src/ProcessMaker/Exporter/XmlExporter.php --- .../engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php b/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php index 39c00a139..2abb95c62 100644 --- a/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php +++ b/workflow/engine/src/Tests/ProcessMaker/Exporter/XmlExporterTest.php @@ -151,7 +151,7 @@ class XmlExporterTest extends \PHPUnit_Framework_TestCase */ public function testGetTextNode() { - //Is not implemented. Metodo getTextNode() is private + //Is not implemented. Method getTextNode() is private } /**