View Javadoc

1   // Copyright (C) 2000 - 2009 Philip Aston
2   // All rights reserved.
3   //
4   // This file is part of The Grinder software distribution. Refer to
5   // the file LICENSE which is part of The Grinder distribution for
6   // licensing details. The Grinder distribution is available on the
7   // Internet at http://grinder.sourceforge.net/
8   //
9   // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
10  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
11  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
12  // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
13  // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
14  // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
15  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
16  // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
17  // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
18  // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
20  // OF THE POSSIBILITY OF SUCH DAMAGE.
21  
22  package net.grinder.engine.messages;
23  
24  import java.io.File;
25  
26  import net.grinder.common.GrinderProperties;
27  import net.grinder.common.processidentity.WorkerIdentity;
28  import net.grinder.engine.agent.StubAgentIdentity;
29  import net.grinder.engine.common.ScriptLocation;
30  import net.grinder.testutility.AbstractFileTestCase;
31  import net.grinder.testutility.Serializer;
32  import net.grinder.util.Directory;
33  
34  
35  /**
36   * Unit test case for messages that are sent to the worker processes.
37   *
38   * @author Philip Aston
39   */
40  public class TestWorkerMessages extends AbstractFileTestCase {
41  
42    public void testInitialiseGrinderMessage() throws Exception {
43  
44      final ScriptLocation script =
45        new ScriptLocation(new Directory(new File("d:/foo/bah")),
46                           new File("/foo"));
47  
48      final StubAgentIdentity agentIdentity =
49        new StubAgentIdentity("Agent");
50      final WorkerIdentity workerIdentity = agentIdentity.createWorkerIdentity();
51      final WorkerIdentity workerIdentity2 = agentIdentity.createWorkerIdentity();
52  
53      final GrinderProperties properties = new GrinderProperties();
54  
55      final InitialiseGrinderMessage original =
56        new InitialiseGrinderMessage(
57          workerIdentity, workerIdentity2, false, script, properties);
58  
59      final InitialiseGrinderMessage received = Serializer.serialize(original);
60  
61      assertEquals(workerIdentity, received.getWorkerIdentity());
62      assertEquals(workerIdentity2, received.getFirstWorkerIdentity());
63      assertTrue(!received.getReportToConsole());
64      assertEquals(script, received.getScript());
65      assertEquals(properties, received.getProperties());
66  
67      final InitialiseGrinderMessage another =
68        new InitialiseGrinderMessage(
69          workerIdentity, workerIdentity2, true, script, properties);
70  
71      assertEquals(workerIdentity, another.getWorkerIdentity());
72      assertEquals(workerIdentity2, another.getFirstWorkerIdentity());
73      assertTrue(another.getReportToConsole());
74      assertEquals(script, another.getScript());
75    }
76  }