summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorAdrien Hopkins <ahopk127@my.yorku.ca>2022-04-09 11:32:43 -0500
committerAdrien Hopkins <ahopk127@my.yorku.ca>2022-04-09 11:32:43 -0500
commitc421e474a7b0d0d453e4a527907f327f2ddef320 (patch)
tree1edf5930488ad18f318a05dcfa3aa4824f5e22ca /src/test/java
parent91f87da88f98de996e167f0ff6809356f6d57e11 (diff)
View now sends and recieves Strings instead of data
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/sevenUnitsGUI/PresenterTest.java85
1 files changed, 47 insertions, 38 deletions
diff --git a/src/test/java/sevenUnitsGUI/PresenterTest.java b/src/test/java/sevenUnitsGUI/PresenterTest.java
index 82842d8..dc2fb57 100644
--- a/src/test/java/sevenUnitsGUI/PresenterTest.java
+++ b/src/test/java/sevenUnitsGUI/PresenterTest.java
@@ -17,12 +17,9 @@
package sevenUnitsGUI;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
-import java.util.Collection;
import java.util.List;
-import java.util.Optional;
-import java.util.OptionalDouble;
import java.util.Set;
import java.util.stream.Collectors;
@@ -32,6 +29,7 @@ import sevenUnits.unit.BaseDimension;
import sevenUnits.unit.Metric;
import sevenUnits.unit.Unit;
import sevenUnits.unit.UnitValue;
+import sevenUnits.utils.Nameable;
import sevenUnits.utils.NamedObjectProduct;
/**
@@ -46,10 +44,8 @@ public final class PresenterTest {
static final Set<NamedObjectProduct<BaseDimension>> testDimensions = Set
.of(Metric.Dimensions.LENGTH, Metric.Dimensions.VELOCITY);
- private static final List<String> unitNames(
- Collection<? extends Unit> units) {
- return units.stream().map(Unit::getShortName)
- .collect(Collectors.toList());
+ private static final Set<String> names(Set<? extends Nameable> units) {
+ return units.stream().map(Nameable::getName).collect(Collectors.toSet());
}
/**
@@ -70,8 +66,10 @@ public final class PresenterTest {
presenter.convertExpressions();
// test result
- final List<String> outputs = viewBot.getExpressionConversionOutputs();
- assertEquals("10000.0 m = 10.0 km", outputs.get(outputs.size() - 1));
+ final List<UnitConversionRecord> outputs = viewBot
+ .expressionConversionList();
+ assertEquals("10000.0 m = 10.0 km",
+ outputs.get(outputs.size() - 1).toString());
}
/**
@@ -85,11 +83,11 @@ public final class PresenterTest {
final ViewBot viewBot = new ViewBot();
final Presenter presenter = new Presenter(viewBot);
- viewBot.setFromUnits(testUnits);
- viewBot.setToUnits(testUnits);
- viewBot.setFromSelection(Optional.of(Metric.METRE));
- viewBot.setToSelection(Optional.of(Metric.KILOMETRE));
- viewBot.setInputValue(OptionalDouble.of(10000.0));
+ viewBot.setFromUnitNames(names(testUnits));
+ viewBot.setToUnitNames(names(testUnits));
+ viewBot.setFromSelection("metre");
+ viewBot.setToSelection("kilometre");
+ viewBot.setInputValue("10000.0");
// convert units
presenter.convertUnits();
@@ -102,11 +100,29 @@ public final class PresenterTest {
final UnitValue expectedInput = UnitValue.of(Metric.METRE, 10000.0);
final UnitValue expectedOutput = expectedInput
.convertTo(Metric.KILOMETRE);
+ final UnitConversionRecord expectedUC = UnitConversionRecord
+ .fromValues(expectedInput, expectedOutput);
- final List<UnitValue> inputs = viewBot.getUnitConversionInputValues();
- final List<UnitValue> outputs = viewBot.getUnitConversionOutputValues();
- assertEquals(expectedInput, inputs.get(inputs.size() - 1));
- assertEquals(expectedOutput, outputs.get(outputs.size() - 1));
+ assertEquals(List.of(expectedUC), viewBot.unitConversionList());
+ }
+
+ @Test
+ void testDuplicateUnits() {
+ assumeTrue(false, "Not yet implemented");
+ /*
+ * enable and disable duplicate units and check for those in From and To,
+ * include duplicate units in the input set
+ */
+ }
+
+ @Test
+ void testOneWayConversion() {
+ assumeTrue(false, "Not yet implemented");
+ /*
+ * enable and disable one-way conversion, testing the units in From and To
+ * on each setting to ensure they match the rule. Include at least one
+ * metric exception.
+ */
}
/**
@@ -125,31 +141,24 @@ public final class PresenterTest {
for (final Unit unit : testUnits) {
presenter.database.addUnit(unit.getPrimaryName().orElseThrow(), unit);
}
+ for (final var dimension : testDimensions) {
+ presenter.database.addDimension(
+ dimension.getPrimaryName().orElseThrow(), dimension);
+ }
// set from and to units
- viewBot.setFromUnits(testUnits);
- viewBot.setToUnits(testUnits);
- viewBot.setDimensions(testDimensions);
- viewBot.setSelectedDimension(Optional.of(Metric.Dimensions.LENGTH));
+ viewBot.setFromUnitNames(names(testUnits));
+ viewBot.setToUnitNames(names(testUnits));
+ viewBot.setDimensionNames(names(testDimensions));
+ viewBot.setSelectedDimensionName(Metric.Dimensions.LENGTH.getName());
// filter to length units only, then get the filtered sets of units
presenter.updateView();
- final Set<Unit> fromUnits = viewBot.getFromUnits();
- final Set<Unit> toUnits = viewBot.getToUnits();
+ final Set<String> fromUnits = viewBot.getFromUnitNames();
+ final Set<String> toUnits = viewBot.getToUnitNames();
// test that fromUnits/toUnits is [METRE, KILOMETRE]
- // HOWEVER I don't care about the order so I'm testing it this way
- assertEquals(2, fromUnits.size(),
- "Invalid fromUnits (length != 2): " + unitNames(fromUnits));
- assertEquals(2, toUnits.size(),
- "Invalid toUnits (length != 2): " + unitNames(toUnits));
- assertTrue(fromUnits.contains(Metric.METRE),
- "Invaild fromUnits (METRE missing): " + unitNames(fromUnits));
- assertTrue(toUnits.contains(Metric.METRE),
- "Invaild toUnits (METRE missing): " + unitNames(toUnits));
- assertTrue(fromUnits.contains(Metric.KILOMETRE),
- "Invaild fromUnits (KILOMETRE missing): " + unitNames(fromUnits));
- assertTrue(toUnits.contains(Metric.KILOMETRE),
- "Invaild toUnits (KILOMETRE missing): " + unitNames(toUnits));
+ assertEquals(Set.of("metre", "kilometre"), fromUnits);
+ assertEquals(Set.of("metre", "kilometre"), toUnits);
}
}