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 }