Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests #160

Merged
merged 7 commits into from Oct 27, 2019
Merged

Tests #160

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 6 additions & 4 deletions src/main/java/seedu/address/statistic/StatsParseUtil.java
@@ -1,9 +1,9 @@
package seedu.address.statistic;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* utility class to check stats Input
Expand All @@ -23,13 +23,15 @@ public class StatsParseUtil {
/**
* list of valid stat types
*/
private static final List<String> typeList = Arrays.asList("PROFIT", "COST", "REVENUE");
private static final String regexList = "\\bPROFIT\\b|\\bCOST\\b|\\bREVENUE\\b";

/**
* Returns true if a given string is a valid Stat Type.
*/
public static boolean isValidStatType(String test) {
return typeList.stream().anyMatch(x -> x.contains(test.toUpperCase()));
Pattern p = Pattern.compile(regexList);
Matcher m = p.matcher(test);
return m.find();
}
//generate-s s/PROFIT d1/2018.12.12 d2/2019.12.12
}
15 changes: 0 additions & 15 deletions src/test/java/seedu/address/commons/util/StatsPayloadTest.java

This file was deleted.

@@ -0,0 +1,43 @@
package seedu.address.logic.commands.statscommand;

import static org.junit.jupiter.api.Assertions.assertTrue;
import static seedu.address.logic.commands.statisticcommand.StatsCommand.MESSAGE_USAGE;
import static seedu.address.statistic.TypicalStatsPayload.ENDING_DATE_2019;
import static seedu.address.statistic.TypicalStatsPayload.STARTING_DATE_2019;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.Test;

import seedu.address.logic.commands.CommandResult;
import seedu.address.logic.commands.UiChange;
import seedu.address.logic.commands.exceptions.CommandException;
import seedu.address.logic.commands.statisticcommand.StatisticType;
import seedu.address.logic.commands.statisticcommand.StatsCommand;
import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;
import seedu.address.statistic.StatsPayload;

public class StatsCommandTest {

private Model model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

@Test
public void execute_commandResult() {
StatsCommand testStatCommand = new StatsCommand(STARTING_DATE_2019, ENDING_DATE_2019, StatisticType.COST);
StatsPayload expectedPayload = new StatsPayload(STARTING_DATE_2019, ENDING_DATE_2019, StatisticType.COST);
CommandResult expectedResult = new CommandResult(MESSAGE_USAGE, expectedPayload, UiChange.STATS);
try {
assertTrue(expectedResult.equals(testStatCommand.execute(model)));
} catch (CommandException e) {
e.printStackTrace();
}
}

}
@@ -0,0 +1,37 @@
package seedu.address.logic.commands.switchcommand;

import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;

public class SwitchArchivedOrderCommandTest {
private Model model;
private Model expectedModel;

@BeforeEach
public void setUp() {
model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

expectedModel = new ModelManager(model.getCustomerBook(), model.getPhoneBook(),
model.getOrderBook(), model.getScheduleBook(), new DataBook<Order>(), new UserPrefs());
}


@Test
public void execute_switchPanel() {
assertCommandSuccess(new SwitchArchivedOrderPanelCommand(), model,
SwitchArchivedOrderPanelCommand.MESSAGE_SUCCESS, expectedModel);
}
}
@@ -0,0 +1,39 @@
package seedu.address.logic.commands.switchcommand;

import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;

public class SwitchCustomerPanelCommandTest {

private Model model;
private Model expectedModel;

@BeforeEach
public void setUp() {
model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

expectedModel = new ModelManager(model.getCustomerBook(), model.getPhoneBook(),
model.getOrderBook(), model.getScheduleBook(), new DataBook<Order>(), new UserPrefs());
}


@Test
public void execute_switchPanel() {
assertCommandSuccess(new SwitchCustomerPanelCommand(), model,
SwitchCustomerPanelCommand.MESSAGE_SUCCESS, expectedModel);
}

}
@@ -0,0 +1,38 @@
package seedu.address.logic.commands.switchcommand;

import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;

public class SwitchOrderPanelCommandTest {
private Model model;
private Model expectedModel;

@BeforeEach
public void setUp() {
model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

expectedModel = new ModelManager(model.getCustomerBook(), model.getPhoneBook(),
model.getOrderBook(), model.getScheduleBook(), new DataBook<Order>(), new UserPrefs());
}


@Test
public void execute_switchPanel() {
assertCommandSuccess(new SwitchOrderPanelCommand(), model,
SwitchOrderPanelCommand.MESSAGE_SUCCESS, expectedModel);
}

}
@@ -0,0 +1,37 @@
package seedu.address.logic.commands.switchcommand;

import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;

public class SwitchPhonePanelCommandTest {
private Model model;
private Model expectedModel;

@BeforeEach
public void setUp() {
model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

expectedModel = new ModelManager(model.getCustomerBook(), model.getPhoneBook(),
model.getOrderBook(), model.getScheduleBook(), new DataBook<Order>(), new UserPrefs());
}


@Test
public void execute_switchPanel() {
assertCommandSuccess(new SwitchPhonePanelCommand(), model,
SwitchPhonePanelCommand.MESSAGE_SUCCESS, expectedModel);
}
}
@@ -0,0 +1,37 @@
package seedu.address.logic.commands.switchcommand;

import static seedu.address.logic.commands.CommandTestUtil.assertCommandSuccess;
import static seedu.address.testutil.TypicalCustomers.getTypicalCustomerBook;
import static seedu.address.testutil.TypicalOrders.getTypicalOrderBook;
import static seedu.address.testutil.TypicalPhones.getTypicalPhoneBook;
import static seedu.address.testutil.TypicalSchedules.getTypicalScheduleBook;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import seedu.address.model.DataBook;
import seedu.address.model.Model;
import seedu.address.model.ModelManager;
import seedu.address.model.UserPrefs;
import seedu.address.model.order.Order;

public class SwitchSchedulePanelCommandTest {
private Model model;
private Model expectedModel;

@BeforeEach
public void setUp() {
model = new ModelManager(getTypicalCustomerBook(), getTypicalPhoneBook(),
getTypicalOrderBook(), getTypicalScheduleBook(), new DataBook<Order>(), new UserPrefs());

expectedModel = new ModelManager(model.getCustomerBook(), model.getPhoneBook(),
model.getOrderBook(), model.getScheduleBook(), new DataBook<Order>(), new UserPrefs());
}


@Test
public void execute_switchPanel() {
assertCommandSuccess(new SwitchSchedulePanelCommand(), model,
SwitchSchedulePanelCommand.MESSAGE_SUCCESS, expectedModel);
}
}
@@ -0,0 +1,65 @@
package seedu.address.model.phone;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.junit.jupiter.api.Test;

import seedu.address.model.phone.predicates.BrandContainsKeywordsPredicate;
import seedu.address.testutil.PhoneBuilder;

public class BrandContainsKeywordPredicateTest {

@Test
public void equals() {
List<String> firstPredicateKeywordList = Collections.singletonList("one");
List<String> secondPredicateKeywordList = Arrays.asList("one", "two");
BrandContainsKeywordsPredicate firstPred =
new BrandContainsKeywordsPredicate(firstPredicateKeywordList);
BrandContainsKeywordsPredicate firstPredCopy =
new BrandContainsKeywordsPredicate(firstPredicateKeywordList);
BrandContainsKeywordsPredicate secondPred =
new BrandContainsKeywordsPredicate(secondPredicateKeywordList);

//same obj
assertTrue(firstPred.equals(firstPredCopy));

//same value
assertEquals(firstPred, firstPred);

// different types -> returns false
assertNotEquals(1, firstPred);

// null -> returns false
assertNotEquals(null, firstPred);

// different phone -> returns false
assertNotEquals(firstPred, secondPred);
}

@Test
void test_brandContainsKeywords_returnsTrue() {
// One keyword
BrandContainsKeywordsPredicate predicate =
new BrandContainsKeywordsPredicate(Collections.singletonList("Alice"));
assertTrue(predicate.test(new PhoneBuilder().withBrand("Alice Bob").build()));

// Multiple keywords
predicate = new BrandContainsKeywordsPredicate(Arrays.asList("Alice", "Bob"));
assertTrue(predicate.test(new PhoneBuilder().withBrand("Alice Bob").build()));

// Only one matching keyword
predicate = new BrandContainsKeywordsPredicate(Arrays.asList("Bob", "Carol"));
assertTrue(predicate.test(new PhoneBuilder().withBrand("Alice Carol").build()));

// Mixed-case keywords
predicate = new BrandContainsKeywordsPredicate(Arrays.asList("aLIce", "bOB"));
assertTrue(predicate.test(new PhoneBuilder().withBrand("Alice Bob").build()));
}
}