package jfxtras.icalendarfx.parameter; import static org.junit.Assert.assertEquals; import org.junit.Test; import jfxtras.icalendarfx.parameters.AlternateText; import jfxtras.icalendarfx.parameters.CalendarUser; import jfxtras.icalendarfx.parameters.Delegatees; import jfxtras.icalendarfx.parameters.DirectoryEntry; import jfxtras.icalendarfx.parameters.FormatType; import jfxtras.icalendarfx.parameters.GroupMembership; public class ParseParameterTest { @Test // tests enum as value public void canParseCalendarUser() { CalendarUser parameter = CalendarUser.parse("GROUP"); String expectedContent = "CUTYPE=GROUP"; assertEquals(expectedContent, parameter.toString()); } @Test // tests list of URI value public void canParseDelegatees() { Delegatees parameter = Delegatees.parse("\"mailto:jdoe@example.com\",\"mailto:jqpublic@example.com\""); String expectedContent = "DELEGATED-TO=\"mailto:jdoe@example.com\",\"mailto:jqpublic@example.com\""; assertEquals(expectedContent, parameter.toString()); assertEquals(2, parameter.getValue().size()); } @Test // tests single URI as value public void canParseAlternateText() { AlternateText parameter = AlternateText.parse("\"CID:part3.msg.970415T083000@example.com\""); String expectedContent = "ALTREP=\"CID:part3.msg.970415T083000@example.com\""; assertEquals(expectedContent, parameter.toString()); } @Test // tests single URI as value public void canParseGroupMembership() { String expectedContent = "\"mailto:projectA@example.com\",\"mailto:projectB@example.com\""; GroupMembership parameter = GroupMembership.parse(expectedContent); assertEquals("MEMBER=" + expectedContent, parameter.toString()); assertEquals(2, parameter.getValue().size()); } @Test // tests list as value public void canParseDirectory() { DirectoryEntry parameter = DirectoryEntry.parse("\"ldap://example.com:6666/o=ABC%20Industries,c=US???(cn=Jim%20Dolittle)\""); String expectedContent = "DIR=\"ldap://example.com:6666/o=ABC%20Industries,c=US???(cn=Jim%20Dolittle)\""; assertEquals(expectedContent, parameter.toString()); } @Test // tests two-value parameter public void canParseFormatType() { FormatType parameter = FormatType.parse("application/msword"); String expectedContent = "FMTTYPE=application/msword"; assertEquals(expectedContent, parameter.toString()); assertEquals("application", parameter.getTypeName()); assertEquals("msword", parameter.getSubtypeName()); } @Test // tests two-value parameter public void canChangeFormatType() { FormatType parameter = FormatType.parse("application/msword"); parameter.setSubtypeName("newapp"); String expectedContent = "FMTTYPE=application/newapp"; assertEquals(expectedContent, parameter.toString()); assertEquals("application", parameter.getTypeName()); assertEquals("newapp", parameter.getSubtypeName()); } }