summaryrefslogtreecommitdiff
path: root/src/Q8/CandidateTest.java
blob: 56513b8819fa61145c5a62fb5d9a6635fb9ab896 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package ca.mokhan.test;

import Q8.*;
import java.util.ArrayList;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class CandidateTest extends TestCase {
  private Candidate[] candidates = {
    new Candidate("Elena", "Brandon", 82.30, "poor", true, 0.5),
    new Candidate("Thomas", "Molson", 85.10, "poor", false, 1.0),
    new Candidate("Hamilton", "Winn", 77.77, "average", false, 0.8),
    new Candidate("Suzie", "Sarandin", 69.93, "average", false, 0.0),
    new Candidate("Philip", "Winne", 93.03, "average", true, 1.0),
    new Candidate("Alex", "Trebok", 88.61, "poor", true, 0.7),
    new Candidate("Emma", "Pivoto", 55.99, "excellent", false, 0.8),
    new Candidate("John", "Lenthen", 87.49, "excellent", true, 0.9),
    new Candidate("James", "Lean", 88.00, "excellent", false, 0.5),
    new Candidate("Jane", "Ostin", 91.20, "average", true, 0.6),
    new Candidate("Emily", "Car", 66.79, "excellent", false, 0.3),
    new Candidate("Daniel", "Hamshire", 76.65, "average", true, 0.2),
    new Candidate("Neda", "Bazdar", 55.89, "excellent", true, 0.5),
    new Candidate("Aaron", "Smith", 90.01, "excellent", false, 0.3),
    new Candidate("Kate", "Hen", 87.9, "poor", false, 0.8)
  };

  public CandidateTest(String testName) {
    super(testName);
  }

  public static Test suite() {
    return new TestSuite(CandidateTest.class);
  }

  public void testGetEligibleCandidates() {
    ArrayList<Candidate> eligibleCandidates = Candidate.getEligibleCandidates(this.candidates);
    for (String expected :
        new String[] {
          "Hamilton", "Philip", "Alex", "Emma", "John", "James", "Jane", "Neda", "Aaron"
        }) {
      assertNotNull(
          eligibleCandidates.stream()
              .filter(x -> expected.equals(x.getFirstName()))
              .findAny()
              .orElse(null));
    }
  }

  public void testIsElligibleWithGreaterThanRequiredGrade() {
    assertTrue(new Candidate("Tsuyoshi", "Garrett", 85.0, "excellent", false, 0.0).isEligible());
  }

  public void testIsElligibleWithLessThanRequiredGrade() {
    assertFalse(new Candidate("Tsuyoshi", "Garrett", 84.9, "average", false, 0.0).isEligible());
    assertTrue(new Candidate("Tsuyoshi", "Garrett", 84.9, "average", false, 0.5).isEligible());
  }

  public void testIsElligibleWithPoorCommunication() {
    assertTrue(new Candidate("Tsuyoshi", "Garrett", 85.0, "poor", true, 0.0).isEligible());
    assertFalse(new Candidate("Tsuyoshi", "Garrett", 85.0, "poor", false, 0.0).isEligible());
  }
}