From 188eb74a70561f343f1999a2d3561d3dcfe1742e Mon Sep 17 00:00:00 2001 From: P0nk Date: Mon, 26 Dec 2022 14:54:35 +0100 Subject: [PATCH] Add Note model object --- src/main/java/model/Note.java | 21 +++++++++++++++++++++ src/test/java/model/NoteTest.java | 28 ++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/main/java/model/Note.java create mode 100644 src/test/java/model/NoteTest.java diff --git a/src/main/java/model/Note.java b/src/main/java/model/Note.java new file mode 100644 index 0000000000..677f096c5c --- /dev/null +++ b/src/main/java/model/Note.java @@ -0,0 +1,21 @@ +package model; + +import java.util.Objects; + +public record Note(int id, String message, String from, String to, long timestamp, int fame) { + private static final int PLACEHOLDER_ID = -1; + + public Note { + Objects.requireNonNull(message); + Objects.requireNonNull(from); + Objects.requireNonNull(to); + } + + public Note createNormal(String message, String from, String to, long timestamp) { + return new Note(PLACEHOLDER_ID, message, from, to, timestamp, 0); + } + + public Note createGift(String message, String from, String to, long timestamp) { + return new Note(PLACEHOLDER_ID, message, from, to, timestamp, 1); + } +} diff --git a/src/test/java/model/NoteTest.java b/src/test/java/model/NoteTest.java new file mode 100644 index 0000000000..1779e3f258 --- /dev/null +++ b/src/test/java/model/NoteTest.java @@ -0,0 +1,28 @@ +package model; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class NoteTest { + + @Test + void requireNonNullMessage() { + assertThrows(NullPointerException.class, () -> new Note(1, null, "from", "to", System.currentTimeMillis(), 0)); + } + + @Test + void requireNonNullFrom() { + assertThrows(NullPointerException.class, () -> new Note(2, "message", null, "to", System.currentTimeMillis(), 0)); + } + + @Test + void requireNonNullTo() { + assertThrows(NullPointerException.class, () -> new Note(3, "message", "from", null, System.currentTimeMillis(), 0)); + } + + @Test + void createNew() { + assertDoesNotThrow(() -> new Note(4, "message", "from", "to", System.currentTimeMillis(), 5)); + } +} \ No newline at end of file