assertEquals("Sr.", it.get(0));
}
//FN
{
FNType f = vcard.getFN();
assertEquals("Mr. John Richter James Doe Sr.", f.getFormattedName());
}
//NICKNAME
{
NicknameType f = vcard.getNicknames();
List<String> it = f.getNicknames();
assertEquals(1, it.size());
assertEquals("Johny", it.get(0));
}
//ORG
{
OrgType f = vcard.getOrg();
assertEquals("IBM", f.getOrgName());
List<String> it = f.getOrgUnits();
assertEquals(1, it.size());
assertEquals("Accounting", it.get(0));
}
//TITLE
{
TitleType f = vcard.getTitle();
assertEquals("Money Counter", f.getTitle());
}
//NOTE
{
List<NoteType> it = vcard.getNotes();
assertEquals(1, it.size());
NoteType f = it.get(0);
assertEquals("THIS SOFTWARE IS PROVIDED BY GEORGE EL-HADDAD ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GEORGE EL-HADDAD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", f.getNote());
}
//TEL
{
List<TelType> it = vcard.getTels();
assertEquals(2, it.size());
TelType f = it.get(0);
assertEquals("(905) 555-1234", f.getTelephone());
List<TelParamType> types = f.getParams();
assertEquals(2, types.size());
assertTrue(types.contains(TelParamType.WORK));
assertTrue(types.contains(TelParamType.VOICE));
f = it.get(1);
assertEquals("(905) 666-1234", f.getTelephone());
types = f.getParams();
assertEquals(2, types.size());
assertTrue(types.contains(TelParamType.HOME));
assertTrue(types.contains(TelParamType.VOICE));
}
//ADR
{
List<AdrType> it = vcard.getAdrs();
assertEquals(2, it.size());
AdrType f = it.get(0);
assertEquals("", f.getPostOfficeBox());
assertEquals("", f.getExtendedAddress());
assertEquals("Cresent moon drive", f.getStreetAddress());
assertEquals("Albaney", f.getLocality());
assertEquals("New York", f.getRegion());
assertEquals("12345", f.getPostalCode());
assertEquals("United States of America", f.getCountryName());
List<AdrParamType> types = f.getParams();
assertEquals(2, types.size());
assertTrue(types.contains(AdrParamType.WORK));
assertTrue(types.contains(AdrParamType.PREF));
f = it.get(1);
assertEquals("", f.getPostOfficeBox());
assertEquals("", f.getExtendedAddress());
assertEquals("Silicon Alley 5,", f.getStreetAddress());
assertEquals("New York", f.getLocality());
assertEquals("New York", f.getRegion());
assertEquals("12345", f.getPostalCode());
assertEquals("United States of America", f.getCountryName());
types = f.getParams();
assertEquals(1, types.size());
assertTrue(types.contains(AdrParamType.HOME));
}
//LABEL
{
List<LabelType> it = vcard.getLables();
assertEquals(2, it.size());
LabelType f = it.get(0);
assertEquals("Cresent moon drive\r\nAlbaney, New York 12345", f.getLabel());
List<LabelParamType> types = f.getParams();
assertEquals(2, types.size());
assertTrue(types.contains(LabelParamType.WORK));
assertTrue(types.contains(LabelParamType.PREF));
f = it.get(1);
assertEquals("Silicon Alley 5,\r\nNew York, New York 12345", f.getLabel());
types = f.getParams();
assertEquals(1, types.size());
assertTrue(types.contains(LabelParamType.HOME));
}
//URL
{
List<UrlType> it = vcard.getUrls();
assertEquals(1, it.size());
UrlType f = it.get(0);
assertEquals("http://www.ibm.com", f.getRawUrl());
List<UrlParamType> types = f.getParams();
assertEquals(1, types.size());
assertTrue(types.contains(UrlParamType.WORK));
}
//ROLE
{
RoleType f = vcard.getRole();
assertEquals("Counting Money", f.getRole());
}
//BDAY
{
BDayType f = vcard.getBDay();
assertEquals(1980, f.getBirthday().get(Calendar.YEAR));
assertEquals(Calendar.MARCH, f.getBirthday().get(Calendar.MONTH));
assertEquals(22, f.getBirthday().get(Calendar.DAY_OF_MONTH));
}
//EMAIL
{
List<EmailType> it = vcard.getEmails();
assertEquals(1, it.size());
EmailType f = it.get(0);
assertEquals("john.doe@ibm.cm", f.getEmail());
List<EmailParamType> types = f.getParams();
assertEquals(2, types.size());
assertTrue(types.contains(EmailParamType.PREF));
assertTrue(types.contains(EmailParamType.INTERNET));
}
//PHOTO
{
List<PhotoType> it = vcard.getPhotos();
assertEquals(1, it.size());
PhotoType f = it.get(0);
assertEquals(EncodingType.BINARY, f.getEncodingType());
assertEquals(ImageMediaType.JPEG, f.getImageMediaType());
assertEquals(860, f.getPhoto().length);
}
//REV
{
RevType f = vcard.getRev();
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
c.clear();
c.set(Calendar.YEAR, 2012);
c.set(Calendar.MONTH, Calendar.MARCH);
c.set(Calendar.DAY_OF_MONTH, 5);
c.set(Calendar.HOUR_OF_DAY, 13);
c.set(Calendar.MINUTE, 19);
c.set(Calendar.SECOND, 33);
Calendar actual = f.getRevision();
assertEquals(c.getTime(), actual.getTime());
}
//custom types
{
List<ExtendedType> it = vcard.getExtendedTypes();
assertEquals(6, it.size());
ExtendedType f = it.get(0);
assertEquals("X-MS-OL-DEFAULT-POSTAL-ADDRESS", f.getExtendedName());
assertEquals("2", f.getExtendedValue());
f = it.get(1);
assertEquals("X-MS-ANNIVERSARY", f.getExtendedName());
assertEquals("20110113", f.getExtendedValue());
f = it.get(2);
assertEquals("X-MS-IMADDRESS", f.getExtendedName());
assertEquals("johny5@aol.com", f.getExtendedValue());
f = it.get(3);
assertEquals("X-MS-OL-DESIGN", f.getExtendedName());
assertEquals("<card xmlns=\"http://schemas.microsoft.com/office/outlook/12/electronicbusinesscards\" ver=\"1.0\" layout=\"left\" bgcolor=\"ffffff\"><img xmlns=\"\" align=\"tleft\" area=\"32\" use=\"photo\"/><fld xmlns=\"\" prop=\"name\" align=\"left\" dir=\"ltr\" style=\"b\" color=\"000000\" size=\"10\"/><fld xmlns=\"\" prop=\"org\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"title\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"dept\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"telwork\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"><label align=\"right\" color=\"626262\">Work</label></fld><fld xmlns=\"\" prop=\"telhome\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"><label align=\"right\" color=\"626262\">Home</label></fld><fld xmlns=\"\" prop=\"email\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"addrwork\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"addrhome\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"webwork\" align=\"left\" dir=\"ltr\" color=\"000000\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/><fld xmlns=\"\" prop=\"blank\" size=\"8\"/></card>", f.getExtendedValue());
assertEquals(Charset.forName("UTF-8"), f.getCharset());
f = it.get(4);
assertEquals("X-MS-MANAGER", f.getExtendedName());
assertEquals("Big Blue", f.getExtendedValue());
f = it.get(5);
assertEquals("X-MS-ASSISTANT", f.getExtendedName());
assertEquals("Jenny", f.getExtendedValue());
}
VCardImpl vcard2 = (VCardImpl)vcard;
if(vcard2.hasErrors()) {