Example #1
0
    internal static DateTimeProperty Create(VcfRow vcfRow, VCdVersion version)
    {
        Debug.Assert(vcfRow != null);

        switch (vcfRow.Parameters.DataType)
        {
        case VCdDataType.DateAndOrTime:
        case VCdDataType.DateTime:
        case VCdDataType.Date:
        case VCdDataType.TimeStamp:
        case null:
        {
            return(vcfRow.Info.DateAndOrTimeConverter.TryParse(vcfRow.Value, out DateTimeOffset dateTimeOffset)
                        ? new DateTimeOffsetProperty(dateTimeOffset, vcfRow)
                        : new DateTimeTextProperty(vcfRow, version));
        }

        case VCdDataType.Time:
        {
            return(vcfRow.Info.TimeConverter.TryParse(vcfRow.Value, out DateTimeOffset dateTimeOffset)
                        ? new DateTimeOffsetProperty(dateTimeOffset, vcfRow)
                        : new DateTimeTextProperty(vcfRow, version));
        }

        default:
        {
            return(new DateTimeTextProperty(vcfRow, version));
        }
        }//switch
    }
Example #2
0
    public void GetValueTest()
    {
        VcfRow row  = VcfRow.Parse("Profile:", new VcfDeserializationInfo()) !;
        var    prop = new ProfileProperty(row, VCdVersion.V3_0);

        Assert.AreEqual("VCARD", prop.Value);
    }
Example #3
0
    public void DataPropertyTest3()
    {
        VcfRow row  = VcfRow.Parse("PHOTO:", new VcfDeserializationInfo()) !;
        var    prop = new DataProperty(row, VCdVersion.V3_0);

        Assert.IsNull(prop.Value);
    }
Example #4
0
    public void OrganizationPropertyTest3()
    {
        VcfRow row  = VcfRow.Parse("ORG:", new VcfDeserializationInfo()) !;
        var    prop = new OrganizationProperty(row, Enums.VCdVersion.V3_0);

        Assert.IsNotNull(prop.Value);
    }
Example #5
0
    public void NamePropertyTest3()
    {
        VcfRow row  = VcfRow.Parse("FN:", new VcfDeserializationInfo()) !;
        var    prop = new NameProperty(row, VCdVersion.V3_0);

        Assert.IsNotNull(prop.Value);
    }
    public void StringCollectionPropertyTest3(string s, string?expectedGroup, string[]?expectedNickNames)
    {
        var vcfRow = VcfRow.Parse(s, new VcfDeserializationInfo());

        Assert.IsNotNull(vcfRow);

        var nickNameProp = new StringCollectionProperty(vcfRow !, Enums.VCdVersion.V4_0);

        Assert.AreEqual(expectedGroup, nickNameProp.Group);
        CollectionAssert.AreEqual(expectedNickNames, nickNameProp.Value);
    }
    public void GetValueTest()
    {
        VcfRow row  = VcfRow.Parse("PidMap:", new VcfDeserializationInfo()) !;
        var    prop = new PropertyIDMappingProperty(row);

        Assert.IsNull(prop.Value);

        //using var writer = new StringWriter();
        //var serializer = new Vcf_3_0Serializer(writer, VcfOptions.WriteEmptyProperties, null);
        //serializer.
        //prop.BuildProperty(serializer);
        //Assert.AreEqual(0, writer.ToString().Length);
    }
    public void GenderPropertyTest2(string s, string?expectedGroup, VCdSex?expectedSex, string?expectedGenderIdentity)
    {
        var vcfRow = VcfRow.Parse(s, new VcfDeserializationInfo());

        Assert.IsNotNull(vcfRow);

        var genderProp = new GenderProperty(vcfRow !, Enums.VCdVersion.V4_0);

        Assert.IsNotNull(genderProp.Value);
        Assert.AreEqual(expectedGroup, genderProp.Group);
        Assert.AreEqual(expectedSex, genderProp.Value.Sex);
        Assert.AreEqual(expectedGenderIdentity, genderProp.Value.GenderIdentity);
    }
Example #9
0
    public void OrganizationPropertyTest2(
        string s, string?expectedGroup, string?expectedOrganizationName, string[] expectedOrganizationalUnits)
    {
        var vcfRow = VcfRow.Parse(s, new VcfDeserializationInfo());

        Assert.IsNotNull(vcfRow);

        var orgProp = new OrganizationProperty(vcfRow !, Enums.VCdVersion.V4_0);

        Assert.IsNotNull(orgProp.Value);
        Assert.AreEqual(expectedGroup, orgProp.Group);
        Assert.AreEqual(expectedOrganizationName, orgProp.Value.OrganizationName);
        CollectionAssert.AreEqual(expectedOrganizationalUnits, orgProp.Value.OrganizationalUnits);
    }
    public void AccessPropertyTest2()
    {
        var row = VcfRow.Parse($"{GROUP}.{VCard.PropKeys.CLASS}:private", new VcfDeserializationInfo());

        Assert.IsNotNull(row);

        var prop = new AccessProperty(row !);

        Assert.AreEqual(GROUP, prop.Group);
        Assert.AreEqual(Enums.VCdAccess.Private, prop.Value);
        Assert.AreEqual(Enums.VCdAccess.Private, ((VCardProperty)prop).Value);


        Assert.IsFalse(prop.IsEmpty);
    }
Example #11
0
    public void ParseTest(string input, bool rowIsNull, string key, string?group, int parametersCount)
    {
        var info = new VcfDeserializationInfo();

        _ = info.Builder.Append(input);
        var row = VcfRow.Parse(info.Builder.ToString(), info);

        if (rowIsNull)
        {
            Assert.IsNull(row);
            return;
        }

        Assert.IsNotNull(row);
        Assert.IsNotNull(row !.Parameters);
        Assert.AreEqual(parametersCount, row.Parameters.Count);
        Assert.AreEqual(key, row.Key, false);
        Assert.AreEqual(group, row.Group, false);
    }
 internal NonStandardProperty(VcfRow vcfRow)
     : base(vcfRow.Parameters, vcfRow.Group)
 {
     PropertyKey = vcfRow.Key;
     Value       = vcfRow.Value;
 }
Example #13
0
 internal ProfileProperty(VcfRow row, VCdVersion version) : base(row, version)
 {
 }
Example #14
0
 internal XmlProperty(VcfRow vcfRow) : base(vcfRow, VCdVersion.V4_0)
 {
 }