/* 
 * JBoss, Home of Professional Open Source 
 * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors
 * as indicated by the @author tags. All rights reserved. 
 * See the copyright.txt in the distribution for a 
 * full listing of individual contributors.
 *
 * This copyrighted material is made available to anyone wishing to use, 
 * modify, copy, or redistribute it subject to the terms and conditions 
 * of the GNU Lesser General Public License, v. 2.1. 
 * This program is distributed in the hope that it will be useful, but WITHOUT A 
 * 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, 
 * v.2.1 along with this distribution; if not, write to the Free Software 
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
 * MA  02110-1301, USA.
 */
package org.switchyard.quickstarts.demos.helpdesk;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.switchyard.component.bean.config.model.BeanSwitchYardScanner;
import org.switchyard.component.bpm.config.model.BpmSwitchYardScanner;
import org.switchyard.test.SwitchYardRunner;
import org.switchyard.test.SwitchYardTestCaseConfig;
import org.switchyard.test.mixins.BPMMixIn;
import org.switchyard.test.mixins.CDIMixIn;
import org.switchyard.test.mixins.HTTPMixIn;
import org.switchyard.transform.config.model.TransformSwitchYardScanner;

/**
 * @author David Ward &lt;<a href="mailto:dward@jboss.org">dward@jboss.org</a>&gt; (C) 2011 Red Hat Inc.
 */
@RunWith(SwitchYardRunner.class)
@SwitchYardTestCaseConfig(
    config = SwitchYardTestCaseConfig.SWITCHYARD_XML,
    scanners = {BeanSwitchYardScanner.class, BpmSwitchYardScanner.class, TransformSwitchYardScanner.class},
    mixins = {BPMMixIn.class, CDIMixIn.class, HTTPMixIn.class}
)
public class HelpDeskTests {

    private BPMMixIn bpm;
    private HTTPMixIn http;

    @Test
    public void testHelpDesk() throws Exception {
        if (bpm.startTaskServer("Developer", "User")) {
            try {
                http.postResourceAndTestXML("http://localhost:18001/HelpDeskService", "/xml/soap-request.xml", "/xml/soap-response.xml");
                boolean keepWorking = true;
                while (keepWorking) {
                    keepWorking = bpm.completeTasksForUsers("Developer", "User");
                }
            } finally {
                bpm.stopTaskServer();
            }
        }
    }

}

@@ -1962,34 +1962,8 @@
  %7B%0A%0A
-    private BPMMixIn bpm;%0A
     
@@ -1986,16 +1986,16 @@
 n http;%0A
+
 %0A    @Te
@@ -2051,90 +2051,8 @@
 n %7B%0A
-        if (bpm.startTaskServer(%22Developer%22, %22User%22)) %7B%0A            try %7B%0A        
     
@@ -2181,276 +2181,8 @@
 %22);%0A
-                boolean keepWorking = true;%0A                while (keepWorking) %7B%0A                    keepWorking = bpm.completeTasksForUsers(%22Developer%22, %22User%22);%0A                %7D%0A            %7D finally %7B%0A                bpm.stopTaskServer();%0A            %7D%0A        %7D%0A
     

Update BPMMixIn to use the TestMixIn lifecycle methods (initialize() and uninitialize()) to start and stop the bpm task server