diff --git a/Middleware/.classpath b/Middleware/.classpath
index ee4a5b45..dd8c68c4 100644
--- a/Middleware/.classpath
+++ b/Middleware/.classpath
@@ -44,8 +44,8 @@
-
+
@@ -55,8 +55,8 @@
-
+
diff --git a/Middleware/src/main/java/ca/concordia/encs/citydata/producers/BTUProducer.java b/Middleware/src/main/java/ca/concordia/encs/citydata/producers/BTUProducer.java
index f8feb612..bbf1f438 100644
--- a/Middleware/src/main/java/ca/concordia/encs/citydata/producers/BTUProducer.java
+++ b/Middleware/src/main/java/ca/concordia/encs/citydata/producers/BTUProducer.java
@@ -6,6 +6,7 @@
import ca.concordia.encs.citydata.core.exceptions.MiddlewareException;
import ca.concordia.encs.citydata.core.implementations.CSVProducer;
+import ca.concordia.encs.citydata.core.utils.RequestOptions;
/**
@@ -14,6 +15,8 @@
* makes the processed results available to consumers.
* @author Peter Yefi, Vinicius Mioto, Tahereh Bijani, Mohamed Jendoubi
* @date: 2026-06-27
+ * @author: Minette Z. Fixed the producer by adding the required constructor from CSVProducer to properly initialize the inherited base producer (CSVProducer)
+ * @date: 2026-05-29
*/
public class BTUProducer extends CSVProducer{
@@ -21,6 +24,10 @@ public BTUProducer(String filePath) {
super(filePath);
}
+ public BTUProducer(final String filePath, final RequestOptions fileOptions) {
+ super(filePath, fileOptions);
+ }
+
@Override
public void fetch() {
try {
diff --git a/Middleware/src/main/java/ca/concordia/encs/citydata/producers/FCUProducer.java b/Middleware/src/main/java/ca/concordia/encs/citydata/producers/FCUProducer.java
index a6474ce5..abaf99f2 100644
--- a/Middleware/src/main/java/ca/concordia/encs/citydata/producers/FCUProducer.java
+++ b/Middleware/src/main/java/ca/concordia/encs/citydata/producers/FCUProducer.java
@@ -6,6 +6,7 @@
import ca.concordia.encs.citydata.core.exceptions.MiddlewareException;
import ca.concordia.encs.citydata.core.implementations.CSVProducer;
+import ca.concordia.encs.citydata.core.utils.RequestOptions;
/**
* This producer reads Flow data from a CSV source, processes it line by line, and produces a result set for the data
@@ -13,6 +14,8 @@
* makes the processed results available to consumers.
* @author Peter Yefi, Vinicius Mioto, Tahereh Bijani, Mohamed Jendoubi
* @date: 2026-06-27
+ * @author: Minette Z. Fixed the producer by adding the required constructor from CSVProducer to properly initialize the inherited base producer (CSVProducer)
+ * @date: 2026-05-29
*/
public class FCUProducer extends CSVProducer{
@@ -20,6 +23,11 @@ public FCUProducer(String filePath) {
super(filePath);
}
+ public FCUProducer(String filePath, RequestOptions fileOptions) {
+ super(filePath, fileOptions);
+ }
+
+
@Override
public void fetch() {
try {
diff --git a/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/BTUProducerTest.java b/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/BTUProducerTest.java
index c9ffa696..9a5db115 100644
--- a/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/BTUProducerTest.java
+++ b/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/BTUProducerTest.java
@@ -1,7 +1,7 @@
package ca.concordia.encs.citydata.test.producers;
import org.junit.jupiter.api.Test;
-import org.junit.Assert;
+import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
@@ -14,6 +14,8 @@
*
* @author @author Peter Yefi, Vinicius Mioto, Tahereh Bijani, Mohamed Jendoubi
* @since 2026-05-27
+ * @author: Minette Z. Fixed the test by changing the imports, and using the right assert (assertEquals)
+ * @date: 2026-05-29
*/
public class BTUProducerTest {
@@ -29,7 +31,7 @@ void setUp() {
void testThatFilePathMatch() {
//Arrange and act
btuProducer.fetch();
- Assert.assertEquals(btuProducer.getFilePath(), stringFilePath);
+ assertEquals(btuProducer.getFilePath(), stringFilePath);
}
@Test
@@ -39,10 +41,10 @@ void testThatResultSetMatchesFileContent() {
String [] rowOne = btuProducer.getResult().getFirst().split(",");
String [] lastRow = btuProducer.getResult().getLast().split(",");
- Assert.assertEquals(btuProducer.getResult().size(), 30);
- Assert.assertEquals(rowOne.length, 8);
- Assert.assertEquals(rowOne[0], "2024-10-01 04:50:00+00:00");
- Assert.assertEquals(lastRow[7], "20.518442");
+ assertEquals(btuProducer.getResult().size(), 30);
+ assertEquals(rowOne.length, 8);
+ assertEquals(rowOne[0], "2024-10-01 04:50:00+00:00");
+ assertEquals(lastRow[7], "20.518442");
}
diff --git a/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/FCUProducerTest.java b/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/FCUProducerTest.java
index ae113d98..80624338 100644
--- a/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/FCUProducerTest.java
+++ b/Middleware/src/test/java/ca/concordia/encs/citydata/test/producers/FCUProducerTest.java
@@ -1,11 +1,21 @@
package ca.concordia.encs.citydata.test.producers;
-import org.junit.Assert;
+import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import ca.concordia.encs.citydata.producers.BTUProducer;
+/**
+ * FCUProducer Tests
+ *
+ * @author @author Peter Yefi, Vinicius Mioto, Tahereh Bijani, Mohamed Jendoubi
+ * @since 2026-05-27
+ * @author: Minette Z. Fixed the test by changing the imports, and using the right assert (assertEquals)
+ * @date: 2026-05-29
+ */
+
+
public class FCUProducerTest {
private BTUProducer fcuProducer = null;
@@ -20,7 +30,7 @@ void setUp() {
void testThatFilePathMatch() {
//Arrange and act
fcuProducer.fetch();
- Assert.assertEquals(fcuProducer.getFilePath(), stringFilePath);
+ assertEquals(fcuProducer.getFilePath(), stringFilePath);
}
@Test
@@ -31,10 +41,10 @@ void testThatResultSetMatchesFileContent() {
String [] lastRow = fcuProducer.getResult().getLast().split(",");
- Assert.assertEquals(fcuProducer.getResult().size(), 19);
- Assert.assertEquals(rowOne.length, 13);
- Assert.assertEquals(rowOne[0], "2022-03-02 02:15:00-05:00");
- Assert.assertEquals(lastRow[12], "-0.6838173");
+ assertEquals(fcuProducer.getResult().size(), 19);
+ assertEquals(rowOne.length, 13);
+ assertEquals(rowOne[0], "2022-03-02 02:15:00-05:00");
+ assertEquals(lastRow[12], "-0.6838173");
}
}
diff --git a/Middleware/src/test/resources/sample_BTU.csv b/Middleware/src/test/resources/sample_BTU.csv
new file mode 100644
index 00000000..c0f59f91
--- /dev/null
+++ b/Middleware/src/test/resources/sample_BTU.csv
@@ -0,0 +1,31 @@
+,YTDVOLM-TOT,VOLM-TOT,YTDENRG-TOT,ENRG-TOT,RT,ST,VOLM-RT,ENRG-RT
+2024-10-01 04:50:00+00:00,1537.0,257.0,15788700000.0,236900000.0,44.89837333333333,44.46054,8.919307,
+2024-10-01 04:55:00+00:00,1537.0,257.0,15788700000.0,236900000.0,44.89837333333333,44.46054,8.919307,
+2024-10-01 05:00:00+00:00,1537.0,257.0,15738200000.0,236900000.0,43.579637500000004,43.07584666666667,20.75178909090909,
+2024-10-01 05:05:00+00:00,1537.0,257.0,15738300000.0,236900000.0,53.28717,45.46274,20.215303333333335,
+2024-10-01 05:10:00+00:00,1537.0,257.0,15738400000.0,236900000.0,53.28717,45.39899666666667,20.74445,
+2024-10-01 05:15:00+00:00,1537.0,257.0,15738500000.0,236900000.0,53.19522,45.39899666666667,20.650281666666668,
+2024-10-01 05:20:00+00:00,1537.0,257.0,15738600000.0,236900000.0,53.19522,45.39899666666667,20.583014,
+2024-10-01 05:25:00+00:00,1537.0,257.0,15738700000.0,236900000.0,53.19522,45.39899666666667,20.571485714285718,
+2024-10-01 05:30:00+00:00,1537.0,257.0,15738800000.0,236900000.0,53.19522,45.3786,20.47001,
+2024-10-01 05:35:00+00:00,1537.0,257.0,15738900000.0,236900000.0,53.54007,45.47804,20.542655,
+2024-10-01 05:40:00+00:00,1537.0,257.0,15739050000.0,236900000.0,53.54007,45.47804,20.398519999999998,
+2024-10-01 05:45:00+00:00,1537.0,257.0,15739200000.0,236900000.0,53.27185,45.47804,20.61328625,
+2024-10-01 05:50:00+00:00,1537.0,257.0,15739300000.0,236900000.0,53.48642,45.47804,20.199605,
+2024-10-01 05:55:00+00:00,1537.0,257.0,15739400000.0,236900000.0,53.48642,45.47804,20.56283625,
+2024-10-01 06:00:00+00:00,1537.0,257.0,15739500000.0,236900000.0,53.77765,45.764920000000004,19.848484000000003,
+2024-10-01 06:05:00+00:00,1537.0,257.0,15739600000.0,236900000.0,53.62181666666667,45.516295,20.381221666666665,
+2024-10-01 06:10:00+00:00,1537.0,257.0,15739700000.0,236900000.0,53.62181666666667,45.516295,20.07853125,
+2024-10-01 06:15:00+00:00,1537.0,257.0,15739800000.0,236900000.0,53.62181666666667,45.516295,20.515751666666667,
+2024-10-01 06:20:00+00:00,1537.0,257.0,15739900000.0,236900000.0,53.62181666666667,45.516295,19.97186857142857,
+2024-10-01 06:25:00+00:00,1537.0,257.0,15740000000.0,236900000.0,53.62181666666667,45.516295,20.0449,
+2024-10-01 06:30:00+00:00,1537.0,257.0,15740100000.0,236900000.0,53.643525,45.59279333333333,20.2096975,
+2024-10-01 06:35:00+00:00,1537.0,257.0,15740200000.0,236900000.0,53.643525,45.59279333333333,20.650281666666668,
+2024-10-01 06:40:00+00:00,1537.0,257.0,15740350000.0,236900000.0,53.25653,45.14908,20.58301714285714,
+2024-10-01 06:45:00+00:00,1537.0,257.0,15740500000.0,236900000.0,53.25653,45.14908,20.91597875,
+2024-10-01 06:50:00+00:00,1537.0,257.0,15740600000.0,236900000.0,53.34337333333334,45.9198475,20.726515555555558,
+2024-10-01 06:55:00+00:00,1537.0,257.0,15740700000.0,236900000.0,53.773804999999996,46.14362,21.05118,
+2024-10-01 07:00:00+00:00,1537.0,257.0,15740800000.0,236900000.0,53.773804999999996,45.92941,21.1076825,
+2024-10-01 07:05:00+00:00,1537.0,257.0,15740900000.0,236900000.0,53.773804999999996,46.15128,20.774720000000002,
+2024-10-01 07:10:00+00:00,1537.0,257.0,15741000000.0,236900000.0,53.773804999999996,46.15128,21.194167142857143,
+2024-10-01 07:15:00+00:00,1537.0,257.0,15741100000.0,236900000.0,53.8696,46.37314,20.518442,
\ No newline at end of file
diff --git a/Middleware/src/test/resources/sample_FCU.csv b/Middleware/src/test/resources/sample_FCU.csv
new file mode 100644
index 00000000..53ff8dd3
--- /dev/null
+++ b/Middleware/src/test/resources/sample_FCU.csv
@@ -0,0 +1,20 @@
+,SW-O,HTG-O,HC-O,CLG-O,PUMP-C,T-SP,SAF-SP,T,SF-S,INSLAB-T,DA-T,OA-T
+2022-03-02 02:15:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.04243332
+2022-03-02 02:20:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.04243332
+2022-03-02 02:25:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.04243332
+2022-03-02 02:30:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.3653018
+2022-03-02 02:35:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 02:40:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 02:45:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 02:50:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 02:55:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:00:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:05:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:10:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:15:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:20:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:25:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:30:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:35:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:40:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
+2022-03-02 03:45:00-05:00,100.0,0.0,0.0,99.51366,,22.0,30.0,23.84879,1.0,24.84361,24.71732,-0.6838173
\ No newline at end of file