Skip to content

Commit

Permalink
reference and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
FolkerKinzel committed Jul 11, 2023
1 parent a42b5d5 commit 8f412c4
Show file tree
Hide file tree
Showing 9 changed files with 174 additions and 24 deletions.
Binary file modified src/FolkerKinzel.VCards.Doku.de/Help/FolkerKinzel.VCards.de.chm
Binary file not shown.
4 changes: 3 additions & 1 deletion src/FolkerKinzel.VCards.Tests/HelperExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public static int GetLinesCount(this string? source)
{
int count = 0;
if (source == null) { return count; }
if (source.Length == 0) { return 1; }

using var reader = new StringReader(source);
while(reader.ReadLine() != null) { count++; }
Expand All @@ -37,7 +38,8 @@ public static int GetLinesCount(this string? source)

public static bool HasEmptyLine(this string? source)
{
if (string.IsNullOrEmpty(source)) { return false; }
if (source is null) { return false; }
if (source.Length == 0) { return true; }

using var reader = new StringReader(source);

Expand Down
45 changes: 43 additions & 2 deletions src/FolkerKinzel.VCards.Tests/Models/NamePropertyTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using FolkerKinzel.VCards.Intls.Deserializers;
using FolkerKinzel.VCards.Models.Enums;
using FolkerKinzel.VCards.Tests;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace FolkerKinzel.VCards.Models.Tests;

Expand Down Expand Up @@ -63,11 +65,50 @@ public void NamePropertyTest3()
[TestMethod()]
public void ToStringTest()
{
var adr = new NameProperty(LAST_NAME, FIRST_NAME, MIDDLE_NAME, PREFIX, SUFFIX);
var name = new NameProperty(LAST_NAME, FIRST_NAME, MIDDLE_NAME, PREFIX, SUFFIX);

string s = adr.ToString();
string s = name.ToString();

Assert.IsNotNull(s);
Assert.AreNotEqual(0, s.Length);
}

[TestMethod]
public void ToDisplayNameTest1()
{
var name = new NameProperty(LAST_NAME, FIRST_NAME, MIDDLE_NAME, PREFIX, SUFFIX);
string s = name.ToDisplayName();
Assert.IsNotNull(s);
Assert.AreNotEqual(0, s.Length);
Assert.AreEqual(1, s.GetLinesCount());
}

[TestMethod]
public void ToDisplayNameTest2()
{
var name = new NameProperty(LAST_NAME, FIRST_NAME);
string s = name.ToDisplayName();
Assert.IsNotNull(s);
Assert.AreNotEqual(0, s.Length);
Assert.AreEqual(1, s.GetLinesCount());
}

[TestMethod]
public void ToDisplayNameTest3()
{
var name = new NameProperty(null, FIRST_NAME);
string s = name.ToDisplayName();
Assert.IsNotNull(s);
Assert.AreNotEqual(0, s.Length);
Assert.AreEqual(1, s.GetLinesCount());
}

[TestMethod]
public void ToDisplayNameTest4()
{
var name = new NameProperty();
string s = name.ToDisplayName();
Assert.IsNotNull(s);
Assert.AreEqual(0, s.Length);
}
}
2 changes: 1 addition & 1 deletion src/FolkerKinzel.VCards/FolkerKinzel.VCards.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<PackageId>FolkerKinzel.VCards</PackageId>
<Product>FolkerKinzel.VCards</Product>
<Version>5.0.0-beta.3</Version>
<FileVersion>5.0.0.72</FileVersion>
<FileVersion>5.0.0.78</FileVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
<PackageReleaseNotes>https://github.com/FolkerKinzel/VCards/releases/tag/v5.0.0-beta.3</PackageReleaseNotes>
Expand Down
16 changes: 11 additions & 5 deletions src/FolkerKinzel.VCards/Models/AddressProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ public sealed class AddressProperty : VCardProperty, IEnumerable<AddressProperty
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <param name="appendLabel">Geben Sie <c>false</c> an, um zu verhindern, dass dem Parameter <see cref="ParameterSection.Label"/>
/// automatisch ein aus den gekapselten Daten erzeugtes Adressetikett hinzugefügt wird.</param>
/// automatisch ein Adressetikett hinzugefügt wird.</param>
/// <seealso cref="AppendLabel"/>
#if !NET40
[MethodImpl(MethodImplOptions.AggressiveInlining)]
#endif
Expand Down Expand Up @@ -74,7 +75,8 @@ public AddressProperty(IEnumerable<string?>? street,
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <param name="appendLabel">Geben Sie <c>false</c> an, um zu verhindern, dass dem Parameter <see cref="ParameterSection.Label"/>
/// automatisch ein aus den gekapselten Daten erzeugtes Adressetikett hinzugefügt wird.</param>
/// automatisch ein Adressetikett hinzugefügt wird.</param>
/// <seealso cref="AppendLabel"/>
[Obsolete("Don't use this constructor.", false)]
public AddressProperty(IEnumerable<string?>? street,
IEnumerable<string?>? locality,
Expand Down Expand Up @@ -113,7 +115,8 @@ public AddressProperty(IEnumerable<string?>? street,
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <param name="appendLabel">Geben Sie <c>false</c> an, um zu verhindern, dass dem Parameter <see cref="ParameterSection.Label"/>
/// automatisch ein aus den gekapselten Daten erzeugtes Adressetikett hinzugefügt wird.</param>
/// automatisch ein Adressetikett hinzugefügt wird.</param>
/// <seealso cref="AppendLabel"/>
#if !NET40
[MethodImpl(MethodImplOptions.AggressiveInlining)]
#endif
Expand Down Expand Up @@ -153,7 +156,8 @@ public AddressProperty(
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <param name="appendLabel">Geben Sie <c>false</c> an, um zu verhindern, dass dem Parameter <see cref="ParameterSection.Label"/>
/// automatisch ein aus den gekapselten Daten erzeugtes Adressetikett hinzugefügt wird.</param>
/// automatisch ein Adressetikett hinzugefügt wird.</param>
/// <seealso cref="AppendLabel"/>
[Obsolete("Don't use this constructor.", false)]
public AddressProperty(
string? street,
Expand Down Expand Up @@ -185,17 +189,19 @@ public AddressProperty(
/// Wandelt die in der Instanz gekapselten Daten in formatierten Text für ein Adressetikett um.
/// </summary>
/// <returns>Die in der Instanz gekapselten Daten, umgewandelt in formatierten Text für ein Adressetikett.</returns>
/// <seealso cref="AppendLabel"/>
#if !NET40
[MethodImpl(MethodImplOptions.AggressiveInlining)]
#endif
public string ToLabel() => Value.ToLabel();


/// <summary>
/// Fügt der Eigenschaft <see cref="ParameterSection.Label"/> ein Adressetikett hinzu, das automatisch aus den
/// Fügt der Eigenschaft <see cref="ParameterSection.Label"/> ein Adressetikett hinzu, das aus den
/// Daten der Instanz generíert wird. Evtl. vorher in der Eigenschaft <see cref="ParameterSection.Label"/> gespeicherte
/// Daten werden dabei überschrieben.
/// </summary>
/// <seealso cref="ToLabel"/>
#if !NET40
[MethodImpl(MethodImplOptions.AggressiveInlining)]
#endif
Expand Down
10 changes: 9 additions & 1 deletion src/FolkerKinzel.VCards/Models/NameProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ namespace FolkerKinzel.VCards.Models;
/// <summary>
/// Repräsentiert die vCard-Property <c>N</c>, die den Namen des vCard-Subjekts speichert.
/// </summary>
/// <remarks>
/// <note type="tip">
/// Sie können die Methode <see cref="NameProperty.ToDisplayName"/> verwenden, um aus den strukturierten Namensdarstellungen
/// formatierte Darstellungen zu erzeugen, die für die Benutzer der Anwendung lesbar sind.
/// </note>
/// </remarks>
public sealed class NameProperty : VCardProperty, IEnumerable<NameProperty>
{
/// <summary>
Expand All @@ -33,6 +39,7 @@ private NameProperty(NameProperty prop) : base(prop)
/// <param name="propertyGroup">Bezeichner der Gruppe,
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <seealso cref="ToDisplayName"/>
public NameProperty(
IEnumerable<string?>? lastName = null,
IEnumerable<string?>? firstName = null,
Expand Down Expand Up @@ -60,6 +67,7 @@ public NameProperty(
/// <param name="propertyGroup">Bezeichner der Gruppe,
/// der die <see cref="VCardProperty"/> zugehören soll, oder <c>null</c>,
/// um anzuzeigen, dass die <see cref="VCardProperty"/> keiner Gruppe angehört.</param>
/// <seealso cref="ToDisplayName"/>
public NameProperty(
string? lastName,
string? firstName = null,
Expand Down Expand Up @@ -113,7 +121,7 @@ internal NameProperty(VcfRow vcfRow, VCdVersion version)


/// <summary>
/// Bringt die von der Instanz gekapselten Daten in eine lesbare Form.
/// Formatiert die von der Instanz gekapselten Daten in eine lesbare Form.
/// </summary>
/// <returns>Die von der Instanz gekapselten Daten in lesbarer Form.</returns>
#if !NET40
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,8 @@ public InterestLevel? InterestLevel
/// Textvergleich überprüfen oder mit der Methode <see cref="AddressProperty.AppendLabel()"/> aus den Adressdaten eigene Labels erstellen.
/// </para>
/// </note>
///
/// </remarks>
/// <seealso cref="AddressProperty.AppendLabel"/>
public string? Label
{
get => Get<string?>(VCdParam.Label);
Expand Down
Loading

0 comments on commit 8f412c4

Please sign in to comment.