Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions run_util_test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
rm -rf build/test/stubs
rm -rf build/test/classes
mkdir -p build/test/stubs
mkdir -p build/test/classes

echo "Compiling stubs..."
find test/stubs -name "*.java" > sources_stubs.txt
javac -d build/test/stubs @sources_stubs.txt
if [ $? -ne 0 ]; then
echo "Stub compilation failed!"
exit 1
fi

# Construct classpath excluding jfoenix because we are stubbing it
CP="libs/test/*:build/test/stubs"
for jar in libs/*.jar; do
if [[ $jar != *"jfoenix"* ]]; then
CP="$CP:$jar"
fi
done

echo "Classpath: $CP"

echo "Compiling LibraryAssistantUtil and Test..."
javac -sourcepath "" -cp "$CP" -d build/test/classes \
src/library/assistant/util/LibraryAssistantUtil.java \
test/library/assistant/util/LibraryAssistantUtilTest.java
if [ $? -ne 0 ]; then
echo "Source compilation failed!"
exit 1
fi

echo "Running Test..."
java -cp "build/test/classes:$CP" org.junit.runner.JUnitCore library.assistant.util.LibraryAssistantUtilTest
20 changes: 20 additions & 0 deletions sources_stubs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
test/stubs/library/assistant/database/DatabaseHandler.java
test/stubs/library/assistant/ui/listmember/MemberListController.java
test/stubs/library/assistant/ui/settings/Preferences.java
test/stubs/library/assistant/ui/main/MainController.java
test/stubs/library/assistant/export/pdf/ListToPDF.java
test/stubs/library/assistant/alert/AlertMaker.java
test/stubs/javafx/scene/image/Image.java
test/stubs/javafx/scene/Scene.java
test/stubs/javafx/scene/layout/StackPane.java
test/stubs/javafx/scene/Parent.java
test/stubs/javafx/scene/Node.java
test/stubs/javafx/event/Event.java
test/stubs/javafx/event/EventHandler.java
test/stubs/javafx/event/ActionEvent.java
test/stubs/javafx/stage/FileChooser.java
test/stubs/javafx/stage/Window.java
test/stubs/javafx/stage/StageStyle.java
test/stubs/javafx/stage/Stage.java
test/stubs/javafx/fxml/FXMLLoader.java
test/stubs/com/jfoenix/controls/JFXButton.java
23 changes: 23 additions & 0 deletions test/library/assistant/util/LibraryAssistantUtilTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package library.assistant.util;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.junit.Assert;
import org.junit.Test;

public class LibraryAssistantUtilTest {

@Test
public void testFormatDateTimeString() {
// 2023-10-25 14:30:45
Calendar calendar = new GregorianCalendar(2023, Calendar.OCTOBER, 25, 14, 30, 45);
Date date = calendar.getTime();

// Expected format: dd-MM-yyyy hh:mm:ss a
String expected = "25-10-2023 02:30:45 PM";
String actual = LibraryAssistantUtil.formatDateTimeString(date);

Assert.assertEquals(expected, actual);
}
}
8 changes: 8 additions & 0 deletions test/stubs/com/jfoenix/controls/JFXButton.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.jfoenix.controls;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
public class JFXButton extends Node {
public JFXButton(String text) {}
public void setOnAction(EventHandler<ActionEvent> value) {}
}
2 changes: 2 additions & 0 deletions test/stubs/javafx/event/ActionEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package javafx.event;
public class ActionEvent extends Event {}
2 changes: 2 additions & 0 deletions test/stubs/javafx/event/Event.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package javafx.event;
public class Event {}
4 changes: 4 additions & 0 deletions test/stubs/javafx/event/EventHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package javafx.event;
public interface EventHandler<T extends Event> {
void handle(T event);
}
7 changes: 7 additions & 0 deletions test/stubs/javafx/fxml/FXMLLoader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package javafx.fxml;
import java.net.URL;
public class FXMLLoader {
public FXMLLoader(URL location) {}
public <T> T load() throws java.io.IOException { return null; }
public <T> T getController() { return null; }
}
2 changes: 2 additions & 0 deletions test/stubs/javafx/scene/Node.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package javafx.scene;
public abstract class Node {}
2 changes: 2 additions & 0 deletions test/stubs/javafx/scene/Parent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package javafx.scene;
public abstract class Parent extends Node {}
6 changes: 6 additions & 0 deletions test/stubs/javafx/scene/Scene.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package javafx.scene;
import javafx.stage.Window;
public class Scene {
public Scene(Parent root) {}
public Window getWindow() { return null; }
}
4 changes: 4 additions & 0 deletions test/stubs/javafx/scene/image/Image.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package javafx.scene.image;
public class Image {
public Image(String url) {}
}
3 changes: 3 additions & 0 deletions test/stubs/javafx/scene/layout/StackPane.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package javafx.scene.layout;
import javafx.scene.Parent;
public class StackPane extends Parent {}
12 changes: 12 additions & 0 deletions test/stubs/javafx/stage/FileChooser.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package javafx.stage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FileChooser {
public void setTitle(String title) {}
public List<ExtensionFilter> getExtensionFilters() { return new ArrayList<>(); }
public File showSaveDialog(Window ownerWindow) { return new File("dummy.pdf"); }
public static class ExtensionFilter {
public ExtensionFilter(String description, String... extensions) {}
}
}
14 changes: 14 additions & 0 deletions test/stubs/javafx/stage/Stage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package javafx.stage;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import java.util.ArrayList;
import java.util.List;
public class Stage extends Window {
private List<Image> icons = new ArrayList<>();
public Stage(StageStyle style) {}
public Stage() {}
public void setTitle(String title) {}
public void setScene(Scene scene) {}
public void show() {}
public List<Image> getIcons() { return icons; }
}
7 changes: 7 additions & 0 deletions test/stubs/javafx/stage/StageStyle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package javafx.stage;
public enum StageStyle {
DECORATED,
TRANSPARENT,
UNDECORATED,
UTILITY
}
2 changes: 2 additions & 0 deletions test/stubs/javafx/stage/Window.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package javafx.stage;
public class Window {}
10 changes: 10 additions & 0 deletions test/stubs/library/assistant/alert/AlertMaker.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package library.assistant.alert;
import javafx.scene.Node;
import javafx.scene.layout.StackPane;
import com.jfoenix.controls.JFXButton;
import java.util.List;

public class AlertMaker {
public static void showErrorMessage(String title, String content) {}
public static void showMaterialDialog(StackPane root, Node nodeToBeBlurred, List<JFXButton> controls, String header, String body) {}
}
8 changes: 8 additions & 0 deletions test/stubs/library/assistant/export/pdf/ListToPDF.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package library.assistant.export.pdf;
import java.io.File;
import java.util.List;

public class ListToPDF {
public enum Orientation { LANDSCAPE, PORTRAIT }
public boolean doPrintToPdf(List<List> data, File saveLoc, Orientation orientation) { return true; }
}
2 changes: 2 additions & 0 deletions test/stubs/library/assistant/ui/main/MainController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package library.assistant.ui.main;
public class MainController {}
6 changes: 6 additions & 0 deletions test/stubs/library/assistant/ui/settings/Preferences.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package library.assistant.ui.settings;
public class Preferences {
public static Preferences getPreferences() { return new Preferences(); }
public int getnDaysWithoutFine() { return 10; }
public float getFinePerDay() { return 2.0f; }
}