public class Logger {
private static Logger logger = null;
private String lastLog = "";
private Logger() {
}
public static Logger getInstance() {
if(logger == null) {
synchronized (Logger.class) {
if(logger == null) {
logger = new Logger();
}
}
}
return logger;
}
public void log(String log) {
lastLog = log;
System.out.println("Log: [" + log + "]");
}
public String getLastLog() {
return lastLog;
}
}
public final class SettingsFileEngine {
private static SettingsFileEngine settingsFileEngineInstance = null;
private String fileName = "";
private SettingsFileEngine() {
}
public static SettingsFileEngine getInstance() {
if(settingsFileEngineInstance == null) {
synchronized (SettingsFileEngine.class) {
if (settingsFileEngineInstance == null) {
settingsFileEngineInstance = new SettingsFileEngine();
}
}
}
return settingsFileEngineInstance;
}
public String getFileName() {
return fileName;
}
public void open(final String fileName) {
this.fileName = fileName;
System.out.println("Opening the settings file");
}
public void close() {
this.fileName = "";
System.out.println("Closing the settings file");
}
public boolean loadSettings() {
System.out.println("Loadind settings from file");
return true;
}
public boolean saveSettings() {
System.out.println("Saving settings to file");
return true;
}
}
//JUnit Test
public class LoggerTestSuite {
@Test
public void getLastLog() {
//Given
Logger.getInstance().log("New looog");
Logger.getInstance().log("2nd looog");
Logger.getInstance().log("3nd looog");
//When & Then
Assert.assertEquals("3nd looog", Logger.getInstance().getLastLog());
}
}
public class SettingsFileEngineTestSuite {
private static SettingsFileEngine settingsFileEngine;
@BeforeClass
public static void openSettingsFile() {
SettingsFileEngine.getInstance().open(("myapp.settings"));
}
@AfterClass
public static void closeSettingsFile() {
SettingsFileEngine.getInstance().close();
}
@Test
public void testGetFileName() {
//Given
//When
String fileName = SettingsFileEngine.getInstance().getFileName();
System.out.println("Opened: " + fileName);
//Then
Assert.assertEquals("myapp.settings", fileName);
}
@Test
public void testLoadSettings() {
//Given
//When
boolean result = SettingsFileEngine.getInstance().loadSettings();
//Then
Assert.assertTrue(result);
}
@Test
public void testSaveSettings() {
//Given
//When
boolean result = SettingsFileEngine.getInstance().saveSettings();
//Then
Assert.assertTrue(result);
}
}