View Javadoc

1   // Copyright (C) 2008 - 2012 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.console.common.processidentity;
23  
24  import java.util.Comparator;
25  
26  import junit.framework.TestCase;
27  import net.grinder.common.processidentity.AgentIdentity;
28  import net.grinder.common.processidentity.AgentProcessReport;
29  import net.grinder.common.processidentity.ProcessReport;
30  import net.grinder.engine.agent.StubAgentIdentity;
31  
32  
33  /**
34   * Unit tests for {@link ProcessReport}.
35   *
36   * @author Philip Aston
37   */
38  public class TestProcessReport extends TestCase {
39  
40    public void testStateThenNameComparator() throws Exception {
41      final Comparator<ProcessReport> comparator =
42        new ProcessReport.StateThenNameThenNumberComparator();
43  
44      final AgentIdentity agentIdentity1 =
45        new StubAgentIdentity("my agent");
46  
47      final AgentProcessReport agentProcessReport1 =
48        new StubAgentProcessReport(agentIdentity1,
49                                   ProcessReport.State.RUNNING);
50  
51      assertEquals(0,
52        comparator.compare(agentProcessReport1, agentProcessReport1));
53  
54      final AgentProcessReport agentProcessReport2 =
55        new StubAgentProcessReport(agentIdentity1,
56                                   ProcessReport.State.FINISHED);
57  
58      assertTrue(
59        comparator.compare(agentProcessReport1, agentProcessReport2) < 0);
60  
61      assertTrue(
62        comparator.compare(agentProcessReport2, agentProcessReport1) > 0);
63  
64      final AgentIdentity agentIdentity2 =
65        new StubAgentIdentity("zzzagent");
66  
67      final AgentProcessReport agentProcessReport3 =
68        new StubAgentProcessReport(agentIdentity2,
69                                   ProcessReport.State.FINISHED);
70  
71      assertTrue(
72        comparator.compare(agentProcessReport3, agentProcessReport2) > 0);
73  
74      assertTrue(
75        comparator.compare(agentProcessReport2, agentProcessReport3) < 0);
76    }
77  }