/** * This file is part of CloudML [ http://cloudml.org ] * * Copyright (C) 2012 - SINTEF ICT * Contact: Franck Chauvel <franck.chauvel@sintef.no> * * Module: root * * CloudML is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * CloudML is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General * Public License along with CloudML. If not, see * <http://www.gnu.org/licenses/>. */ package test.cloudml.facade; import junit.framework.TestCase; import org.cloudml.facade.*; import org.cloudml.facade.commands.*; import org.cloudml.facade.events.*; import org.cloudml.facade.util.WSClient; import org.junit.Test; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; /** * A simple test to check whether the behaviour of the facade is correct, * regarding message exchange and triggering of events */ public class TestFacade extends TestCase implements EventHandler { /** * Check that the facade does invoke the event handlers which are * registered. * * We retrieve an instance of the CloudML facade, we register basic handler * for success and failure, which both sets a boolean value showing that a * command was processed. Then we create a command an we wait for the * command to be processed, which must be done within 10 s, otherwise we * fail the test. */ @Test public void testTriggerHandler() { // Retrieve CloudML CloudML cloudml = Factory.getInstance().getCloudML(); cloudml.register(this); CommandFactory factory = new CommandFactory(); // Send a dummy command ArrayList<String> vms=new ArrayList<String>(); vms.add("foo"); CloudMlCommand command = factory.startComponent(vms); final Execution execution = cloudml.fireAndWait(command); assertTrue(execution.isCompleted()); } @Test public void testRemoteFacade(){ //CloudML cloudml=Factory.getInstance().getCloudML("ws://127.0.0.1:9000"); //cloudml.fireAndWait(new LoadDeployment("C:\\Users\\nicolasf\\Desktop\\cloudml2.0\\flexiantStorm.json")); //cloudml.fireAndWait(new Deploy()); } /*@Test public void testComparisonInFacade(){ try { Deployment d2 =(Deployment) new JsonCodec().load(new FileInputStream("C:\\Users\\nicolasf\\Desktop\\cloudml2.0\\v2.json")); Deployment d =(Deployment) new JsonCodec().load(new FileInputStream("C:\\Users\\nicolasf\\Desktop\\cloudml2.0\\v4.json")); CloudMLModelComparator diff = new CloudMLModelComparator(d,d2); diff.compareCloudMLModel(); d.getComponents().addAll(d2.getComponents()); d.getRelationships().addAll(d2.getRelationships()); d.getRelationshipInstances().removeAll(diff.getRemovedRelationships()); d.getExecuteInstances().removeAll(diff.getRemovedExecutes()); d.getComponentInstances().removeAll(diff.getRemovedECs()); d.getComponentInstances().removeAll(diff.getRemovedComponents()); d.getRelationshipInstances().replaceAll(diff.getAddedRelationships()); d.getComponentInstances().replaceAll(diff.getAddedECs()); d.getExecuteInstances().replaceAll(diff.getAddedExecutes()); d.getComponentInstances().replaceAll(diff.getAddedComponents()); System.out.println(d.getComponents().toList().toString()); System.out.println(d.getComponentInstances().toList().toString()); System.out.println(d.getExecuteInstances().toList().toString()); System.out.println(d.getRelationshipInstances().toList().toString()); System.out.println(d.getRelationships().toList().toString()); new JsonCodec().save(d, new FileOutputStream("C:\\Users\\nicolasf\\Desktop\\cloudml2.0\\v3.json")); } catch (FileNotFoundException e) { e.printStackTrace(); } }*/ public boolean canHandle(Event event) { return true; } @Override public void handle(Event event) { System.out.println(event); } @Override public void handle(Message message) { this.handle((Event) message); } @Override public void handle(ComponentList artefacts) { handle((Event) artefacts); } @Override public void handle(Data data) { handle((Event) data); } @Override public void handle(ComponentInstanceList artefacts) { this.handle((Event) artefacts); } @Override public void handle(ComponentInstanceData artefact) { this.handle((Event) artefact); } @Override public void handle(ComponentData type) { this.handle((Event) type); } }