File tree Expand file tree Collapse file tree
dnsproxyserver/config/dataformat/v3/file
test/java/com/mageddo/dnsproxyserver/config/dataformat/v3/file Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ## 5.9.1
2+ * Creating the config file dir when it not exists, #699 .
3+
14## 5.9.0
25* Answer all docker service replicas IPs, see #434 .
36
Original file line number Diff line number Diff line change 1- version =5.9.0 -snapshot
1+ version =5.9.1 -snapshot
Original file line number Diff line number Diff line change 1616
1717import lombok .RequiredArgsConstructor ;
1818
19+ import lombok .extern .slf4j .Slf4j ;
20+
21+ import org .apache .commons .io .FileUtils ;
22+
23+ import static com .mageddo .utils .Files .createDirectories ;
24+ import static com .mageddo .utils .Files .createParentDirectories ;
1925import static com .mageddo .utils .Files .deleteQuietly ;
2026import static com .mageddo .utils .Files .findExtension ;
2127
28+ @ Slf4j
2229@ Singleton
2330@ RequiredArgsConstructor (onConstructor_ = @ Inject )
2431public class ConfigFileDAOImpl implements ConfigFileDAO {
@@ -64,11 +71,17 @@ public void delete() {
6471 deleteQuietly (this .configFilePathDAO .find ());
6572 }
6673
67- private Path findFilePath () {
68- return this .configFilePathDAO .find ();
74+ Path findFilePath () {
75+ final var path = this .configFilePathDAO .find ();
76+ final var dir = path .getParent ();
77+ if (!Files .exists (dir )) {
78+ createDirectories (dir );
79+ log .info ("status=createdConfigPath, path={}" , path );
80+ }
81+ return path ;
6982 }
7083
71- private Converter findConverter (Path path ) {
84+ Converter findConverter (Path path ) {
7285 final var extension = findExtension (path );
7386 return this .converterFactory .find (extension );
7487 }
Original file line number Diff line number Diff line change @@ -75,4 +75,20 @@ public static String findExtension(Path path) {
7575 public static void deleteQuietly (Path path ) {
7676 FileUtils .deleteQuietly (path .toFile ());
7777 }
78+
79+ public static void createParentDirectories (Path path ) {
80+ try {
81+ FileUtils .createParentDirectories (path .toFile ());
82+ } catch (IOException e ) {
83+ throw new UncheckedIOException (e );
84+ }
85+ }
86+
87+ public static void createDirectories (Path dir ) {
88+ try {
89+ java .nio .file .Files .createDirectories (dir );
90+ } catch (IOException e ) {
91+ throw new UncheckedIOException (e );
92+ }
93+ }
7894}
Original file line number Diff line number Diff line change 1+ package com .mageddo .dnsproxyserver .config .dataformat .v3 .file ;
2+
3+ import dagger .sheath .InjectMock ;
4+
5+ import org .assertj .core .api .Assertions ;
6+ import org .junit .jupiter .api .Test ;
7+ import org .junit .jupiter .api .extension .ExtendWith ;
8+ import org .junit .jupiter .api .io .TempDir ;
9+ import org .mockito .InjectMocks ;
10+ import org .mockito .Mock ;
11+ import org .mockito .Mockito ;
12+ import org .mockito .Spy ;
13+ import org .mockito .junit .jupiter .MockitoExtension ;
14+
15+ import java .io .IOException ;
16+ import java .nio .file .Path ;
17+ import java .util .UUID ;
18+
19+ import static org .assertj .core .api .Assertions .assertThat ;
20+ import static org .junit .jupiter .api .Assertions .*;
21+ import static org .mockito .Mockito .doReturn ;
22+
23+ @ ExtendWith (MockitoExtension .class )
24+ class ConfigFileDAOImplTest {
25+
26+ @ Mock
27+ ConfigFilePathDAO configFilePathDAO ;
28+
29+ @ Spy
30+ @ InjectMocks
31+ ConfigFileDAOImpl dao ;
32+
33+ @ Test
34+ void mustHaveSureThePathExistsBeforeReturnIt (@ TempDir Path tempDir ) {
35+
36+
37+ final var confDir = tempDir .resolve (String .valueOf (UUID .randomUUID ()))
38+ .resolve ("conf.json" );
39+
40+ doReturn (confDir )
41+ .when (this .configFilePathDAO )
42+ .find ()
43+ ;
44+
45+ final var path = this .dao .findFilePath ();
46+
47+ assertThat (path .getParent ()).exists ();
48+
49+ }
50+
51+ }
You can’t perform that action at this time.
0 commit comments