View Javadoc
1   package civitas.functionaltests;
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.result.*;
17  import civitas.result.tests.ResultTestData;
18  
19  @ExtendWith(SpringExtension.class)
20  @ContextConfiguration(classes = AppTestConfig.class)
21  @Tag("functional")
22  class ComputeWinnersFunctionalTest implements ResultTestData {
23  
24  	@Autowired
25  	ComputeWinners computeWinners;
26  
27  	@Autowired
28  	InitialMatrix initialMatrix;
29  
30  	@Autowired
31  	TransitiveClosure transitiveClosure;
32  
33  	@Autowired
34  	MakeCloudWordList makeCloudWordList;
35  
36  	@Autowired
37  	CalculateWinnerList calculateWinnerList;
38  
39  	@Autowired
40  	CalculateStrengths calculateStrengths;
41  
42  	@Autowired
43  	FormatResult formatResult;
44  
45  	@Test
46  	void test() {
47  		List<List<CandidateResult>> winnerList = calculateWinnerList.apply(matrix, candidates);
48  
49  		calculateStrengths.apply(candidates, winnerList);
50  
51  		List<NameAndStrength> cloudWords = makeCloudWordList.apply(candidates, winnerList);
52  
53  		List<String> cws = new ArrayList<>();
54  		cloudWords.forEach(x -> cws.add(x.cdr() + "," + x.car() + ",#ffffff"));
55  		assertEquals(CLOUDWORDS_CSV, String.join("\n", cws));
56  		String report = formatResult.apply(candidates, winnerList);
57  		assertEquals(REPORT, report);
58  	}
59  }