Coverage Summary for Class: WordCountConfiguration (io.github.mkuchin.service.word)
Class | Method, % | Line, % |
---|---|---|
WordCountConfiguration | 75% (3/ 4) | 33.3% (3/ 9) |
WordCountConfiguration$$EnhancerBySpringCGLIB$$aa181240 | ||
WordCountConfiguration$$EnhancerBySpringCGLIB$$aa181240$$FastClassBySpringCGLIB$$5d9dd811 | ||
WordCountConfiguration$$FastClassBySpringCGLIB$$d77418cc | ||
total | 75% (3/ 4) | 33.3% (3/ 9) |
1 package io.github.mkuchin.service.word;
2
3 import io.github.mkuchin.properties.DataFileProperties;
4 import lombok.RequiredArgsConstructor;
5 import lombok.extern.slf4j.Slf4j;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
8 import org.springframework.context.annotation.Bean;
9 import org.springframework.context.annotation.Configuration;
10 import org.springframework.core.io.ResourceLoader;
11
12 import java.io.BufferedReader;
13 import java.io.IOException;
14 import java.io.InputStreamReader;
15 import java.util.stream.Stream;
16
17 @Configuration
18 @RequiredArgsConstructor
19 @Slf4j
20 public class WordCountConfiguration {
21
22 private final DataFileProperties dataFileConfig;
23
24 @Bean
25 @ConditionalOnProperty("data.file")
26 public WordCountService fileWordCountService(@Autowired ResourceLoader loader) throws IOException {
27 var resource = loader.getResource(dataFileConfig.getFile());
28 try (var reader = new BufferedReader(new InputStreamReader(resource.getInputStream()))) {
29 return new WordCountService(reader.lines());
30 } catch (IOException e) {
31 log.error("Error reading data file", e);
32 throw e;
33 }
34 }
35
36 @Bean
37 @ConditionalOnProperty("data.text")
38 public WordCountService textWordCountService() {
39 return new WordCountService(Stream.of(dataFileConfig.getText()));
40 }
41 }