diff --git a/pom.xml b/pom.xml
index edf9b6b..ed086bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,5 +13,13 @@
22
UTF-8
+
+
+ junit
+ junit
+ RELEASE
+ test
+
+
\ No newline at end of file
diff --git a/src/main/java/com/ceticamarco/Left.java b/src/main/java/com/ceticamarco/Left.java
deleted file mode 100644
index 51ec3d7..0000000
--- a/src/main/java/com/ceticamarco/Left.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ceticamarco;
-
-import java.util.function.Function;
-
-/**
- *
- *
- *
- * @param value
- * @param
- * @param
- */
-public record Left(L value) implements Either {
- @Override
- public T match(Function onLeft, Function onRight) {
- return onLeft.apply(this.value);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/ceticamarco/Right.java b/src/main/java/com/ceticamarco/Right.java
deleted file mode 100644
index 6aee839..0000000
--- a/src/main/java/com/ceticamarco/Right.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.ceticamarco;
-
-import java.util.function.Function;
-
-public record Right(R value) implements Either {
- @Override
- public T match(Function onLeft, Function onRight) {
- return onRight.apply(this.value);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/ceticamarco/Either.java b/src/main/java/com/ceticamarco/lambdatonic/Either.java
similarity index 93%
rename from src/main/java/com/ceticamarco/Either.java
rename to src/main/java/com/ceticamarco/lambdatonic/Either.java
index 565e7ad..a1df4f7 100644
--- a/src/main/java/com/ceticamarco/Either.java
+++ b/src/main/java/com/ceticamarco/lambdatonic/Either.java
@@ -1,4 +1,4 @@
-package com.ceticamarco;
+package com.ceticamarco.lambdatonic;
import java.util.function.Function;
diff --git a/src/main/java/com/ceticamarco/lambdatonic/Left.java b/src/main/java/com/ceticamarco/lambdatonic/Left.java
new file mode 100644
index 0000000..72eba3b
--- /dev/null
+++ b/src/main/java/com/ceticamarco/lambdatonic/Left.java
@@ -0,0 +1,19 @@
+package com.ceticamarco.lambdatonic;
+
+import java.util.function.Function;
+
+/**
+ *
+ * Subtype of the Either protocol.
+ * This class sets the left value of the Either type
+ *
+ * @param value The left value of the Either type
+ * @param The left type, representing the error value
+ * @param The right type, representing the actual value
+ */
+public record Left(L value) implements Either {
+ @Override
+ public T match(Function onLeft, Function onRight) {
+ return onLeft.apply(this.value);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/ceticamarco/lambdatonic/Right.java b/src/main/java/com/ceticamarco/lambdatonic/Right.java
new file mode 100644
index 0000000..288f07d
--- /dev/null
+++ b/src/main/java/com/ceticamarco/lambdatonic/Right.java
@@ -0,0 +1,19 @@
+package com.ceticamarco.lambdatonic;
+
+import java.util.function.Function;
+
+/**
+ *
+ * Subtype of the Either protocol.
+ * This class sets the right value of the either type
+ *
+ * @param value The right value of the Either type
+ * @param The left type, representing the error value
+ * @param The right type, representing the actual value
+ */
+public record Right(R value) implements Either {
+ @Override
+ public T match(Function onLeft, Function onRight) {
+ return onRight.apply(this.value);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/ceticamarco/lambdatonic/LeftTests.java b/src/test/java/com/ceticamarco/lambdatonic/LeftTests.java
new file mode 100644
index 0000000..64afce1
--- /dev/null
+++ b/src/test/java/com/ceticamarco/lambdatonic/LeftTests.java
@@ -0,0 +1,21 @@
+package com.ceticamarco.lambdatonic;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class LeftTests {
+ @Test
+ public void testMatchLeft() {
+ Either resEither = new Left<>(19);
+
+ var actual = resEither.match(
+ errorCode -> "Error code: " + errorCode.toString(),
+ successMsg -> successMsg
+ );
+
+ var expected = "Error code: 19";
+
+ assertEquals(expected, actual);
+ }
+}
diff --git a/src/test/java/com/ceticamarco/lambdatonic/RightTests.java b/src/test/java/com/ceticamarco/lambdatonic/RightTests.java
new file mode 100644
index 0000000..743fcb0
--- /dev/null
+++ b/src/test/java/com/ceticamarco/lambdatonic/RightTests.java
@@ -0,0 +1,21 @@
+package com.ceticamarco.lambdatonic;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class RightTests {
+ @Test
+ public void testMatchRight() {
+ Either resEither = new Right<>("Query executed successfully");
+
+ var actual = resEither.match(
+ errorCode -> "Error code: " + errorCode.toString(),
+ successMsg -> successMsg
+ );
+
+ var expected = "Query executed successfully";
+
+ assertEquals(expected, actual);
+ }
+}