Skip to content

Instantly share code, notes, and snippets.

@abhinav272
Created July 12, 2017 08:28
Show Gist options
  • Save abhinav272/8129d87551251f81a3c5ce6e79447dc3 to your computer and use it in GitHub Desktop.
Save abhinav272/8129d87551251f81a3c5ce6e79447dc3 to your computer and use it in GitHub Desktop.
ICALParser unit test, using ActivityTestRule
import android.content.ContentValues;
import android.provider.CalendarContract;
import android.support.test.rule.ActivityTestRule;
import android.test.ActivityUnitTestCase;
import junit.framework.Assert;
import net.fortuna.ical4j.data.ParserException;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class ICALParserTest {
@Rule
public ActivityTestRule<ClassDetailActivity> mActivityTestRule = new ActivityTestRule<>(ClassDetailActivity.class);
InputStream inputStream;
ICALParser parser;
ContentValues contentValues;
private String descriptionText;
@Before
public void setup() {
descriptionText = "My Local Social training\n" +
"Date: 27 Jun 2017\n" +
"Time: 05:45 AM - 06:30 AM CDT\n" +
"Instructor: Roger Fedrer\n" +
"Studio: Main Studio";
inputStream = getClass().getClassLoader().getResourceAsStream("events.ics");
Assert.assertNotNull("Test file is available", inputStream);
try {
parser = new ICALParser(inputStream);
Assert.assertNotNull("Parser created", parser);
contentValues = parser.buildContentValues();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserException e) {
e.printStackTrace();
}
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void validateBasicValues() throws IOException {
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.HAS_ALARM));
if (contentValues.containsKey(CalendarContract.Events.HAS_ALARM)){
Assert.assertEquals(1, contentValues.get(CalendarContract.Events.HAS_ALARM));
}
Assert.assertEquals(true, contentValues.containsKey(CalendarContract.Events.CALENDAR_ID));
if (contentValues.containsKey(CalendarContract.Events.CALENDAR_ID)){
Assert.assertEquals(1, contentValues.get(CalendarContract.Events.CALENDAR_ID));
}
}
@Test
public void validateTimeZone() {
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.EVENT_TIMEZONE));
if (contentValues.containsKey(CalendarContract.Events.EVENT_TIMEZONE)){
Assert.assertEquals("America/Chicago", contentValues.get(CalendarContract.Events.EVENT_TIMEZONE));
}
Assert.assertEquals(true, contentValues.containsKey(CalendarContract.Events.EVENT_END_TIMEZONE));
if (contentValues.containsKey(CalendarContract.Events.EVENT_END_TIMEZONE)){
Assert.assertEquals("America/Chicago", contentValues.get(CalendarContract.Events.EVENT_END_TIMEZONE));
}
}
@Test
public void validateEventDetails() {
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.DTEND));
if (contentValues.containsKey(CalendarContract.Events.DTEND)){
Assert.assertEquals("1498563000000", contentValues.get(CalendarContract.Events.DTEND).toString());
}
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.DTSTART));
if (contentValues.containsKey(CalendarContract.Events.DTSTART)){
Assert.assertEquals("1498560300000", contentValues.get(CalendarContract.Events.DTSTART).toString());
}
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.DESCRIPTION));
if (contentValues.containsKey(CalendarContract.Events.DESCRIPTION)){
Assert.assertEquals(descriptionText, contentValues.get(CalendarContract.Events.DESCRIPTION));
}
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.EVENT_LOCATION));
if (contentValues.containsKey(CalendarContract.Events.EVENT_LOCATION)){
Assert.assertEquals("MY LOCAL ADDRESS", contentValues.get(CalendarContract.Events.EVENT_LOCATION));
}
Assert.assertEquals( true, contentValues.containsKey(CalendarContract.Events.TITLE));
if (contentValues.containsKey(CalendarContract.Events.TITLE)){
Assert.assertEquals("TRAINING NAME", contentValues.get(CalendarContract.Events.TITLE));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment