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 }