/* * This file is part of LCMC written by Rasto Levrinc. * * Copyright (C) 2013, Rastislav Levrinc. * * The LCMC is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 2, or (at your option) * any later version. * * The LCMC 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with LCMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ package lcmc.robotest; import static lcmc.robotest.RoboTest.CONFIRM_REMOVE; import lcmc.common.domain.util.Tools; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; /** * This class is used to test the GUI. */ @Named @Singleton final class PcmkTest2 { @Inject private RoboTest roboTest; void start() { roboTest.setSlowFactor(0.6f); roboTest.setAborted(false); roboTest.disableStonith(); roboTest.checkTest("test2", 1); /* create 4 dummies */ final int dummy1X = 235; final int dummy1Y = 207; roboTest.chooseDummy(dummy1X, dummy1Y, false, true); final int dummy2X = 545; final int dummy2Y = 207; roboTest.chooseDummy(dummy2X, dummy2Y, false, true); final int dummy3X = 235; final int dummy3Y = 342; roboTest.chooseDummy(dummy3X, dummy3Y, false, true); final int dummy4X = 545; final int dummy4Y = 342; roboTest.chooseDummy(dummy4X, dummy4Y, false, true); roboTest.checkTest("test2", 2); /* placeholder */ final int phX = 445; final int phY = 342; roboTest.moveTo(phX, phY); roboTest.rightClick(); roboTest.moveTo("Placeholder (AND)"); roboTest.leftClick(); roboTest.checkTest("test2", 3); /* constraints */ roboTest.moveTo(phX, phY); roboTest.addConstraint(1); /* with dummy 1 */ roboTest.moveTo(Tools.getString("Browser.ApplyResource")); roboTest.leftClick(); roboTest.checkTest("test2", 4); final int dum1PopX = dummy1X + 130; final int dum1PopY = dummy1Y + 50; for (int i = 0; i < 1; i++) { roboTest.removeOrder(dum1PopX, dum1PopY); roboTest.checkTest("test2", 5); roboTest.addOrder(dum1PopX, dum1PopY); roboTest.checkTest("test2", 6); roboTest.removeColocation(dum1PopX, dum1PopY); roboTest.checkTest("test2", 7); roboTest.addColocation(dum1PopX, dum1PopY); roboTest.checkTest("test2", 8); } roboTest.moveTo(dummy3X, dummy3Y); roboTest.addConstraint(5); /* with ph */ roboTest.checkTest("test2", 9); final int dum3PopX = dummy3X + 165; final int dum3PopY = dummy3Y; for (int i = 0; i < 2; i++) { roboTest.removeColocation(dum3PopX, dum3PopY); roboTest.checkTest("test2", 9.1); roboTest.addColocation(dum3PopX, dum3PopY); roboTest.checkTest("test2", 9.2); roboTest.removeOrder(dum3PopX, dum3PopY); roboTest.checkTest("test2", 9.3); roboTest.addOrder(dum3PopX, dum3PopY); roboTest.checkTest("test2", 9.4); } roboTest.moveTo(phX, phY); roboTest.addConstraint(1); /* with dummy 2 */ roboTest.checkTest("test2", 10); roboTest.moveTo(dummy4X, dummy4Y); roboTest.addConstraint(5); /* with ph */ roboTest.checkTest("test2", 11); /* ph -> dummy2 */ final int dum2PopX = dummy2X - 10; final int dum2PopY = dummy2Y + 70; roboTest.removeConstraint(dum2PopX, dum2PopY); roboTest.checkTest("test2", 11.1); roboTest.addConstraintOrderOnly(phX, phY, 2); /* with dummy 2 */ roboTest.checkTest("test2", 11.2); roboTest.removeOrder(dum2PopX, dum2PopY); roboTest.checkTest("test2", 11.3); roboTest.addConstraintColocationOnly(phX, phY, 2); /* with dummy 2 */ roboTest.checkTest("test2", 11.4); roboTest.addOrder(dum2PopX, dum2PopY); roboTest.checkTest("test2", 11.5); /* dummy4 -> ph */ final int dum4PopX = dummy4X - 40; final int dum4PopY = dummy4Y; roboTest.removeConstraint(dum4PopX, dum4PopY); roboTest.checkTest("test2", 11.6); roboTest.moveTo(dummy4X + 20, dummy4Y + 5); roboTest.rightClick(); /* workaround for the next popup not working. */ roboTest.rightClick(); /* workaround for the next popup not working. */ roboTest.addConstraintColocationOnly(dummy4X, dummy4Y, 5); /* with ph */ roboTest.checkTest("test2", 11.7); roboTest.removeColocation(dum4PopX, dum4PopY); roboTest.checkTest("test2", 11.8); roboTest.moveTo(dummy4X + 20, dummy4Y + 5); roboTest.rightClick(); /* workaround for the next popup not working. */ roboTest.addConstraintOrderOnly(dummy4X, dummy4Y, 5); /* ph 2 */ roboTest.checkTest("test2", 11.9); roboTest.addColocation(dum4PopX, dum4PopY); roboTest.checkTest("test2", 11.91); /* remove one dummy */ roboTest.stopResource(dummy1X, dummy1Y); roboTest.checkTest("test2", 11.92); roboTest.removeResource(dummy1X, dummy1Y, CONFIRM_REMOVE); roboTest.checkTest("test2", 12); roboTest.stopResource(dummy2X, dummy2Y); roboTest.stopResource(dummy3X, dummy3Y); roboTest.stopResource(dummy4X, dummy4Y); roboTest.stopEverything(); roboTest.checkTest("test2", 12.5); if (roboTest.maybe()) { /* remove placeholder */ roboTest.moveTo(phX , phY); roboTest.rightClick(); roboTest.moveTo(Tools.getString("ConstraintPHInfo.Remove")); roboTest.leftClick(); roboTest.confirmRemove(); /* remove rest of the dummies */ roboTest.removeResource(dummy2X, dummy2Y, CONFIRM_REMOVE); roboTest.checkTest("test2", 14); roboTest.removeResource(dummy3X, dummy3Y, CONFIRM_REMOVE); roboTest.checkTest("test2", 15); roboTest.removeResource(dummy4X, dummy4Y, CONFIRM_REMOVE); } else { roboTest.removeEverything(); /* remove placeholder */ roboTest.moveTo(phX , phY); roboTest.rightClick(); roboTest.moveTo(Tools.getString("ConstraintPHInfo.Remove")); roboTest.leftClick(); } roboTest.checkTest("test2", 16); } }