Skip to content

Commit 4263db8

Browse files
mplieskeDeath111
authored andcommitted
Feature/config parser cleanup (#8)
* changed sysout to log * deleted model from class ConfigParser * deleted model and spyModel from ConfigParserTest.java * renamed method parserConfig() to parseConfig() * corrected title of parseConfigButton and removed unnecessary import statement in ControllerTest.java * improved log statements
1 parent bf2e4f3 commit 4263db8

File tree

4 files changed

+20
-35
lines changed

4 files changed

+20
-35
lines changed

src/main/java/de/doubleslash/keeptime/common/ConfigParser.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@
55
import javax.xml.parsers.DocumentBuilder;
66
import javax.xml.parsers.DocumentBuilderFactory;
77

8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
810
import org.w3c.dom.Document;
911
import org.w3c.dom.Element;
1012
import org.w3c.dom.Node;
1113
import org.w3c.dom.NodeList;
1214

1315
import de.doubleslash.keeptime.controller.Controller;
14-
import de.doubleslash.keeptime.model.Model;
1516
import de.doubleslash.keeptime.model.Project;
1617
import javafx.scene.paint.Color;
1718

1819
public class ConfigParser {
20+
private final Logger LOG = LoggerFactory.getLogger(this.getClass());
1921

20-
Controller controller;
21-
Model model;
22+
private final Controller controller;
2223

23-
public ConfigParser(final Model model, final Controller controller) {
24-
this.model = model;
24+
public ConfigParser(final Controller controller) {
2525
this.controller = controller;
2626
}
2727

@@ -30,15 +30,15 @@ public static boolean hasConfigFile(final String fileName) {
3030
return f.exists();
3131
}
3232

33-
public void parserConfig(final File inputFile) {
33+
public void parseConfig(final File inputFile) {
34+
LOG.info("Starting import of projects in file '{}'.", inputFile);
3435
try {
3536
final DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
3637
final DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
3738
final Document doc = dBuilder.parse(inputFile);
3839
doc.getDocumentElement().normalize();
39-
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
40+
LOG.debug("Root element '{}'.", doc.getDocumentElement().getNodeName());
4041
final NodeList nList = doc.getElementsByTagName("project");
41-
System.out.println("----------------------------");
4242

4343
// index makes sure to add new projects at the end
4444
int index = controller.getAvailableProjects().size();
@@ -51,26 +51,29 @@ public void parserConfig(final File inputFile) {
5151
final String isWork = eElement.getElementsByTagName("isWork").item(0).getTextContent();
5252
final String color = eElement.getElementsByTagName("color").item(0).getTextContent();
5353

54-
System.out.println("checking for: " + name);
54+
LOG.debug("Testing if project with name '{}' already exists.", name);
5555
boolean exists = false;
5656

5757
for (final Project p : controller.getAvailableProjects()) {
5858
if (name.equals(p.getName())) {
59-
System.out.println(name + " " + Boolean.toString(exists));
6059
exists = true;
60+
break;
6161
}
6262
}
6363
if (!exists) {
64+
LOG.info("Adding project '{}'.", name);
6465
final Color colorTemp = Color.valueOf(color);
6566
controller.addNewProject(name, Boolean.parseBoolean(isWork), colorTemp, index);
6667
index++;
68+
} else {
69+
LOG.debug("Project '{}' already exists", name);
6770
}
6871

6972
}
7073
}
71-
74+
LOG.info("Import of '{}' finished.", inputFile);
7275
} catch (final Exception e) {
73-
e.printStackTrace();
76+
LOG.error("There was an error while importing projects from config.xml", e);
7477
}
7578
}
7679
}

src/main/java/de/doubleslash/keeptime/view/SettingsController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ private void initialize() {
9898
@Override
9999
public void handle(final ActionEvent actionEvent) {
100100
if (ConfigParser.hasConfigFile(INPUT_FILE)) {
101-
final ConfigParser parser = new ConfigParser(model, controller);
102-
parser.parserConfig(new File(INPUT_FILE));
101+
final ConfigParser parser = new ConfigParser(controller);
102+
parser.parseConfig(new File(INPUT_FILE));
103103
}
104104
}
105105
});

src/main/resources/settings.fxml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118
<children>
119119
<Button fx:id="saveButton" mnemonicParsing="false" text="Save" />
120120
<Button fx:id="cancelButton" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" text="Cancel" />
121-
<Button fx:id="parseConfigButton" mnemonicParsing="false" text="pars config.xml" />
121+
<Button fx:id="parseConfigButton" mnemonicParsing="false" text="parse config.xml" />
122122
</children>
123123
</HBox>
124124
</children>

src/test/java/de/doubleslash/keeptime/common/ConfigParserTest.java

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import static org.mockito.Mockito.doAnswer;
1111
import static org.mockito.Mockito.mock;
1212
import static org.mockito.Mockito.never;
13-
import static org.mockito.Mockito.spy;
1413
import static org.mockito.Mockito.verify;
1514
import static org.mockito.Mockito.when;
1615

@@ -19,18 +18,13 @@
1918

2019
import org.junit.Before;
2120
import org.junit.Test;
22-
import org.mockito.Mockito;
2321
import org.mockito.invocation.InvocationOnMock;
2422
import org.mockito.stubbing.Answer;
2523
import org.slf4j.Logger;
2624
import org.slf4j.LoggerFactory;
2725

2826
import de.doubleslash.keeptime.controller.Controller;
29-
import de.doubleslash.keeptime.model.Model;
3027
import de.doubleslash.keeptime.model.Project;
31-
import de.doubleslash.keeptime.model.repos.ProjectRepository;
32-
import de.doubleslash.keeptime.model.repos.SettingsRepository;
33-
import de.doubleslash.keeptime.model.repos.WorkRepository;
3428
import javafx.collections.FXCollections;
3529
import javafx.collections.ObservableList;
3630
import javafx.scene.paint.Color;
@@ -47,16 +41,10 @@ public class ConfigParserTest {
4741
private final Project hinzUndKunz = new Project("Hinz und Kunz", Color.DARKRED, true, 3);
4842
private final ObservableList<Project> projects = FXCollections.observableArrayList();
4943

50-
private Model model;
51-
private ObservableList<Project> spyModel;
5244
private final Controller controller = mock(Controller.class);
5345

5446
@Before
5547
public void beforeTest() {
56-
model = new Model(Mockito.mock(ProjectRepository.class), Mockito.mock(WorkRepository.class),
57-
Mockito.mock(SettingsRepository.class));
58-
spyModel = spy(model.availableProjects);
59-
6048
projects.add(idle);
6149
projects.add(heinz);
6250
projects.add(peter);
@@ -66,7 +54,6 @@ public void beforeTest() {
6654
@Test
6755
public void testImportFromFileOnce() {
6856
when(controller.getAvailableProjects()).thenReturn(projects);
69-
when(spyModel.size()).thenReturn(4);
7057
doAnswer(new Answer() {
7158
@Override
7259
public Object answer(final InvocationOnMock invocation) {
@@ -88,15 +75,14 @@ public Object answer(final InvocationOnMock invocation) {
8875
}
8976

9077
private void loadConfigFile(final String configFile) {
91-
final ConfigParser testSubject = new ConfigParser(model, controller);
78+
final ConfigParser testSubject = new ConfigParser(controller);
9279
final File inputfile = new File(configFile);
93-
testSubject.parserConfig(inputfile);
80+
testSubject.parseConfig(inputfile);
9481
}
9582

9683
@Test
9784
public void testDoNotImportIdle() {
9885
when(controller.getAvailableProjects()).thenReturn(projects);
99-
when(spyModel.size()).thenReturn(4);
10086
doAnswer(new Answer() {
10187
@Override
10288
public Object answer(final InvocationOnMock invocation) {
@@ -117,7 +103,6 @@ public Object answer(final InvocationOnMock invocation) {
117103
@Test
118104
public void testImportNonexistingProjects() {
119105
when(controller.getAvailableProjects()).thenReturn(projects);
120-
when(spyModel.size()).thenReturn(4);
121106
doAnswer(new Answer() {
122107
@Override
123108
public Object answer(final InvocationOnMock invocation) {
@@ -138,7 +123,6 @@ public Object answer(final InvocationOnMock invocation) {
138123
@Test
139124
public void testIndexIsRight() {
140125
when(controller.getAvailableProjects()).thenReturn(projects);
141-
when(spyModel.size()).thenReturn(4);
142126
doAnswer(new Answer() {
143127
@Override
144128
public Object answer(final InvocationOnMock invocation) {
@@ -159,7 +143,6 @@ public Object answer(final InvocationOnMock invocation) {
159143
@Test
160144
public void testProject1IsParsedCorrectly() {
161145
when(controller.getAvailableProjects()).thenReturn(projects);
162-
when(spyModel.size()).thenReturn(4);
163146
doAnswer(new Answer() {
164147
@Override
165148
public Object answer(final InvocationOnMock invocation) {
@@ -179,7 +162,6 @@ public Object answer(final InvocationOnMock invocation) {
179162
@Test
180163
public void testProject2IsParsedCorrectly() {
181164
when(controller.getAvailableProjects()).thenReturn(projects);
182-
when(spyModel.size()).thenReturn(4);
183165
doAnswer(new Answer() {
184166
@Override
185167
public Object answer(final InvocationOnMock invocation) {

0 commit comments

Comments
 (0)