View Javadoc
1   package civitas.result;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   
5   import java.util.ArrayList;
6   import java.util.List;
7   
8   import org.junit.jupiter.api.Tag;
9   import org.junit.jupiter.api.Test;
10  import org.junit.jupiter.api.extension.ExtendWith;
11  import org.springframework.beans.factory.annotation.Autowired;
12  import org.springframework.test.context.ContextConfiguration;
13  import org.springframework.test.context.junit.jupiter.SpringExtension;
14  
15  import civitas.AppTestConfig;
16  import civitas.common.RandomAwareTestBase;
17  
18  @ExtendWith(SpringExtension.class)
19  @ContextConfiguration(classes = AppTestConfig.class)
20  @Tag("functional")
21  class ComputeWinnersFunctionalTest extends RandomAwareTestBase implements ResultTestData {
22  
23  	@Autowired
24  	ComputeWinners computeWinners;
25  
26  	@Autowired
27  	InitialMatrix initialMatrix;
28  
29  	@Autowired
30  	TransitiveClosure transitiveClosure;
31  
32  	@Autowired
33  	MakeCloudWordList makeCloudWordList;
34  
35  	@Autowired
36  	CalculateWinnerList calculateWinnerList;
37  
38  	@Autowired
39  	CalculateStrengths calculateStrengths;
40  
41  	@Autowired
42  	FormatResult formatResult;
43  
44  	@Test
45  	void test() {
46  		List<List<CandidateResult>> winnerList = calculateWinnerList.apply(matrix, candidates);
47  
48  		calculateStrengths.apply(candidates, winnerList);
49  
50  		List<NameAndStrength> cloudWords = makeCloudWordList.apply(candidates, winnerList);
51  
52  		List<String> cws = new ArrayList<>();
53  		cloudWords.forEach(x -> cws.add(x.cdr() + "," + x.car() + ",#ffffff"));
54  		assertEquals(CLOUDWORDS_CSV, String.join("\n", cws));
55  		String report = formatResult.apply(candidates, winnerList);
56  		assertEquals(REPORT, report);
57  	}
58  }