diff --git a/StoredCredentialForTesting b/StoredCredentialForTesting new file mode 100644 index 000000000000..cef2ff6b3bee Binary files /dev/null and b/StoredCredentialForTesting differ diff --git a/src/test/java/seedu/agendum/sync/SyncProviderGoogleTests.java b/src/test/java/seedu/agendum/sync/SyncProviderGoogleTests.java index c110c344e9e7..0bf0265272eb 100644 --- a/src/test/java/seedu/agendum/sync/SyncProviderGoogleTests.java +++ b/src/test/java/seedu/agendum/sync/SyncProviderGoogleTests.java @@ -1,28 +1,77 @@ package seedu.agendum.sync; +import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.internal.matchers.Any; import seedu.agendum.model.task.Task; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.time.LocalDateTime; import java.util.Optional; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; import static seedu.agendum.commons.core.Config.DEFAULT_DATA_DIR; public class SyncProviderGoogleTests { - private SyncProviderGoogle syncProviderGoogle; private static final File DATA_STORE_CREDENTIAL = new File(DEFAULT_DATA_DIR + "StoredCredential"); + private static final File DATA_STORE_CREDENTIAL_TEST = new File("StoredCredentialForTesting"); + + private SyncProviderGoogle syncProviderGoogle; + private SyncManager mockSyncManager; @Before public void setUp() { - syncProviderGoogle = new SyncProviderGoogle(); + try { + Files.copy(DATA_STORE_CREDENTIAL_TEST.toPath(), DATA_STORE_CREDENTIAL.toPath()); + } catch (IOException e) { + e.printStackTrace(); + } + + mockSyncManager = mock(SyncManager.class); + syncProviderGoogle = spy(new SyncProviderGoogle()); + syncProviderGoogle.setManager(mockSyncManager); + } + + @After + public void tearDown() { + syncProviderGoogle.stop(); + } + + @Test + public void syncProviderGoogle_start_calendarAlreadyExists() { + syncProviderGoogle.deleteAgendumCalendar(); + syncProviderGoogle.start(); + + verify(mockSyncManager).setSyncStatus(Sync.SyncStatus.RUNNING); + } + + @Test + public void syncProviderGoogle_start_createCalendar() { + syncProviderGoogle.start(); + + verify(mockSyncManager).setSyncStatus(Sync.SyncStatus.RUNNING); + } + + @Test + public void syncProviderGoogle_startIfNeeded_credentialsFound() { + syncProviderGoogle.startIfNeeded(); + verify(syncProviderGoogle).start(); } @Test - public void addevent() { + public void syncProviderGoogle_startIfNeeded_credentialsNotFound() { + DATA_STORE_CREDENTIAL.delete(); + syncProviderGoogle.startIfNeeded(); + verify(syncProviderGoogle, never()).start(); + } + + @Test + public void syncProviderGoogle_addEvent_successful() { + syncProviderGoogle.start(); + Task mockTask = mock(Task.class); Optional fakeTime = Optional.of(LocalDateTime.now()); @@ -33,7 +82,9 @@ public void addevent() { } @Test - public void deleteEvent() { + public void syncProviderGoogle_deleteEvent_successful() { + syncProviderGoogle.start(); + Task mockTask = mock(Task.class); Optional fakeTime = Optional.of(LocalDateTime.now());