mirror of
https://github.com/abdelkader/vCardEditor
synced 2025-12-12 08:27:19 +07:00
@@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Thought.vCards;
|
||||
using vCardEditor.Repository;
|
||||
using VCFEditor.Repository;
|
||||
|
||||
@@ -22,5 +23,92 @@ namespace vCardEditor_Test
|
||||
|
||||
Assert.AreEqual(repo.LoadContacts("name")[0].Name, "Oum Alaâ");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void NewFileOpened_SaveDirtyCellPhone_NotNullWithNotNull_Test()
|
||||
{
|
||||
var fileHandler = Substitute.For<IFileHandler>();
|
||||
fileHandler.ReadAllLines(Arg.Any<string>()).Returns(Entries.vcfFourEntry);
|
||||
|
||||
var repo = Substitute.For<ContactRepository>(fileHandler);
|
||||
repo.LoadContacts("name");
|
||||
repo.Contacts[0].isDirty=true;
|
||||
|
||||
string phone = "0011223344";
|
||||
var newCard = new vCard();
|
||||
newCard.Phones.Add(new vCardPhone(phone, vCardPhoneTypes.Cellular));
|
||||
|
||||
repo.SaveDirtyVCard(0, newCard);
|
||||
|
||||
|
||||
var card = repo.Contacts[0].card;
|
||||
Assert.AreEqual(card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber, phone);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void NewFileOpened_SaveDirtyCellPhone_NotNullWithNull_Test()
|
||||
{
|
||||
var fileHandler = Substitute.For<IFileHandler>();
|
||||
fileHandler.ReadAllLines(Arg.Any<string>()).Returns(Entries.vcfFourEntry);
|
||||
|
||||
var repo = Substitute.For<ContactRepository>(fileHandler);
|
||||
repo.LoadContacts("name");
|
||||
repo.Contacts[0].isDirty = true;
|
||||
|
||||
repo.SaveDirtyVCard(0, new vCard());
|
||||
|
||||
|
||||
var card = repo.Contacts[0].card;
|
||||
Assert.AreEqual(card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber, string.Empty);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void NewFileOpened_SaveDirtyCellPhone_NullWithNotNull_Test()
|
||||
{
|
||||
var fileHandler = Substitute.For<IFileHandler>();
|
||||
fileHandler.ReadAllLines(Arg.Any<string>()).Returns(Entries.vcfFourEntry);
|
||||
var repo = Substitute.For<ContactRepository>(fileHandler);
|
||||
repo.LoadContacts("name");
|
||||
repo.Contacts[2].isDirty = true;
|
||||
|
||||
string phone = "0011223344";
|
||||
var newCard = new vCard();
|
||||
newCard.Phones.Add(new vCardPhone(phone, vCardPhoneTypes.Cellular));
|
||||
repo.SaveDirtyVCard(2, newCard);
|
||||
|
||||
var card = repo.Contacts[2].card;
|
||||
Assert.AreEqual(card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber, phone);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void NewFileOpened_SaveDirtyCellPhone_NullWithNull_Test()
|
||||
{
|
||||
var fileHandler = Substitute.For<IFileHandler>();
|
||||
fileHandler.ReadAllLines(Arg.Any<string>()).Returns(Entries.vcfFourEntry);
|
||||
var repo = Substitute.For<ContactRepository>(fileHandler);
|
||||
repo.LoadContacts("name");
|
||||
repo.Contacts[3].isDirty = true;
|
||||
|
||||
repo.SaveDirtyVCard(3, new vCard());
|
||||
|
||||
var card = repo.Contacts[2].card;
|
||||
Assert.IsNull(card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular));
|
||||
}
|
||||
|
||||
|
||||
[TestMethod]
|
||||
public void NewFileOpened_v21_Test()
|
||||
{
|
||||
var fileHandler = Substitute.For<IFileHandler>();
|
||||
fileHandler.ReadAllLines(Arg.Any<string>()).Returns(Entries.vcfWikiv21);
|
||||
var repo = Substitute.For<ContactRepository>(fileHandler);
|
||||
repo.LoadContacts("name");
|
||||
repo.Contacts[0].isDirty = true;
|
||||
|
||||
repo.SaveDirtyVCard(0, new vCard());
|
||||
|
||||
//var card = repo.Contacts[2].card;
|
||||
//Assert.IsNull(card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace vCardEditor_Test
|
||||
"END:VCARD\n" +
|
||||
"BEGIN:VCARD\n" +
|
||||
"VERSION:2.1\n" +
|
||||
"FN:Jean Dupont1\n" +
|
||||
"FN:Jean Dupont2\n" +
|
||||
"N:Dupont;Jean\n" +
|
||||
"ADR;WORK;PREF;QUOTED-PRINTABLE:;Bruxelles 1200=Belgique;6A Rue Th. Decuyper\n" +
|
||||
"TEL;CELL:+1234 56789\n" +
|
||||
@@ -56,6 +56,43 @@ namespace vCardEditor_Test
|
||||
return s.Split('\n');
|
||||
}
|
||||
}
|
||||
public static string[] vcfFourEntry
|
||||
{
|
||||
get
|
||||
{
|
||||
string s = "BEGIN:VCARD\n" +
|
||||
"VERSION:2.1\n" +
|
||||
"FN:Jean Dupont1\n" +
|
||||
"N:Dupont;Jean1\n" +
|
||||
"ADR;WORK;PREF;QUOTED-PRINTABLE:;Bruxelles 1200=Belgique;6A Rue Th. Decuyper\n" +
|
||||
"TEL;CELL:+1234 56789\n" +
|
||||
"EMAIL;INTERNET:jean.dupont@example.com\n" +
|
||||
"END:VCARD\n" +
|
||||
"BEGIN:VCARD\n" +
|
||||
"VERSION:2.1\n" +
|
||||
"FN:Jean Dupont2\n" +
|
||||
"N:Dupont;Jean\n" +
|
||||
"ADR;WORK;PREF;QUOTED-PRINTABLE:;Bruxelles 1200=Belgique;6A Rue Th. Decuyper\n" +
|
||||
"TEL;CELL:+1234 56789\n" +
|
||||
"EMAIL;INTERNET:jean.dupont@example.com\n" +
|
||||
"END:VCARD\n" +
|
||||
"BEGIN:VCARD\n" +
|
||||
"VERSION:2.1\n" +
|
||||
"FN:Jean Dupont3\n" +
|
||||
"N:Dupont;Jean\n" +
|
||||
"ADR;WORK;PREF;QUOTED-PRINTABLE:;Bruxelles 1200=Belgique;6A Rue Th. Decuyper\n" +
|
||||
"EMAIL;INTERNET:jean.dupont@example.com\n" +
|
||||
"END:VCARD\n" +
|
||||
"BEGIN:VCARD\n" +
|
||||
"VERSION:2.1\n" +
|
||||
"FN:Jean Dupont4\n" +
|
||||
"N:Dupont;Jean\n" +
|
||||
"ADR;WORK;PREF;QUOTED-PRINTABLE:;Bruxelles 1200=Belgique;6A Rue Th. Decuyper\n" +
|
||||
"EMAIL;INTERNET:jean.dupont@example.com\n" +
|
||||
"END:VCARD";
|
||||
return s.Split('\n');
|
||||
}
|
||||
}
|
||||
public static string[] vcfUtf8Entry
|
||||
{
|
||||
get
|
||||
@@ -68,5 +105,31 @@ namespace vCardEditor_Test
|
||||
return s.Split('\n');
|
||||
}
|
||||
}
|
||||
|
||||
public static string[] vcfWikiv21
|
||||
{
|
||||
get
|
||||
{
|
||||
string s = "BEGIN:VCARD" +
|
||||
"VERSION:2.1\n" +
|
||||
"N:Gump;Forrest;;Mr.\n" +
|
||||
"FN:Forrest Gump\n" +
|
||||
"ORG:Bubba Gump Shrimp Co.\n" +
|
||||
"TITLE:Shrimp Man\n" +
|
||||
"PHOTO;GIF:http://www.example.com/dir_photos/my_photo.gif\n" +
|
||||
"TEL;WORK;VOICE:(111) 555-1212\n" +
|
||||
"TEL;HOME;VOICE:(404) 555-1212\n" +
|
||||
"ADR;WORK;PREF:;;100 Waters Edge;Baytown;LA;30314;United States of America\n" +
|
||||
"LABEL;WORK;PREF;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:100 Waters Edge=0D=\n" +
|
||||
" =0ABaytown\\, LA 30314=0D=0AUnited States of America\n" +
|
||||
"ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America\n" +
|
||||
"LABEL;HOME;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:42 Plantation St.=0D=0A=\n" +
|
||||
" Baytown, LA 30314=0D=0AUnited States of America\n" +
|
||||
"EMAIL:forrestgump@example.com\n" +
|
||||
"REV:20080424T195243Z\n" +
|
||||
"END:VCARD";
|
||||
return s.Split('\n');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user