Skip to content

Commit

Permalink
Fix the PhoneNumber serialization bug (#31421)
Browse files Browse the repository at this point in the history
* Fix the phonenumber serialization bug

* Fix serialization test case

* Update version to patch release
  • Loading branch information
rajuanitha88 committed Oct 6, 2022
1 parent 1c5103a commit 230edec
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 12 deletions.
2 changes: 1 addition & 1 deletion sdk/communication/Azure.Communication.Common/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Release History

## 1.3.0-beta.1 (Unreleased)
## 1.2.1 (Unreleased)

### Features Added

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
For this release, see notes - https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/communication/Azure.Communication.Common/README.md and https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/communication/Azure.Communication.Common/CHANGELOG.md.
</Description>
<AssemblyTitle>Azure Communication Services Common</AssemblyTitle>
<Version>1.3.0-beta.1</Version>
<Version>1.2.1</Version>
<!--The ApiCompatVersion is managed automatically and should not generally be modified manually.-->
<ApiCompatVersion>1.2.0</ApiCompatVersion>
<PackageTags>Microsoft Azure Communication Service;Microsoft;Azure;Azure Communication Service;Communication;$(PackageCommonTags)</PackageTags>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public static CommunicationIdentifier FromRawId(string rawId)

if (rawId.StartsWith("4:", StringComparison.OrdinalIgnoreCase))
{
return new PhoneNumberIdentifier($"+{rawId.Substring("4:".Length)}");
return new PhoneNumberIdentifier(rawId.Substring("4:".Length));
}

var segments = rawId.Split(':');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public override string RawId
{
get
{
return _rawId ??= $"4:{PhoneNumber.TrimStart('+')}";
return _rawId ??= $"4:{PhoneNumber}";
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ public void RawIdTakesPrecendenceInEqualityCheck()
Assert.AreEqual(new PhoneNumberIdentifier("+14255550123"), new PhoneNumberIdentifier("+14255550123"));
Assert.AreNotEqual(new PhoneNumberIdentifier("+14255550123", "Raw Id"), new PhoneNumberIdentifier("+14255550123", "Another Raw Id"));

Assert.AreEqual(new PhoneNumberIdentifier("+override", "4:14255550123"), new PhoneNumberIdentifier("+14255550123"));
Assert.AreEqual(new PhoneNumberIdentifier("+14255550123"), new PhoneNumberIdentifier("+override", "4:14255550123"));
Assert.AreEqual(new PhoneNumberIdentifier("+override", "4:14255550123"), new PhoneNumberIdentifier("14255550123"));
Assert.AreEqual(new PhoneNumberIdentifier("14255550123"), new PhoneNumberIdentifier("+override", "4:14255550123"));
}

[Test]
Expand All @@ -47,10 +47,14 @@ public void GetRawIdOfIdentifier()
AssertRawId(new MicrosoftTeamsUserIdentifier("45ab2481-1c1c-4005-be24-0ffb879b1130", isAnonymous: false), "8:orgid:45ab2481-1c1c-4005-be24-0ffb879b1130");
AssertRawId(new MicrosoftTeamsUserIdentifier("45ab2481-1c1c-4005-be24-0ffb879b1130", isAnonymous: true), "8:teamsvisitor:45ab2481-1c1c-4005-be24-0ffb879b1130");
AssertRawId(new MicrosoftTeamsUserIdentifier("45ab2481-1c1c-4005-be24-0ffb879b1130", rawId: "8:orgid:legacyFormat", isAnonymous: true), "8:orgid:legacyFormat");
AssertRawId(new PhoneNumberIdentifier("+112345556789"), "4:112345556789");
AssertRawId(new PhoneNumberIdentifier("+112345556789"), "4:+112345556789");
AssertRawId(new PhoneNumberIdentifier("+112345556789", rawId: "4:otherFormat"), "4:otherFormat");
AssertRawId(new UnknownIdentifier("28:45ab2481-1c1c-4005-be24-0ffb879b1130"), "28:45ab2481-1c1c-4005-be24-0ffb879b1130");
AssertRawId(new UnknownIdentifier("someFutureFormat"), "someFutureFormat");
AssertRawId(new PhoneNumberIdentifier("+112345556789"), "4:+112345556789");
AssertRawId(new PhoneNumberIdentifier("112345556789"), "4:112345556789");
AssertRawId(new PhoneNumberIdentifier("otherFormat", rawId: "4:207ffef6-9444-41fb-92ab-20eacaae2768"), "4:207ffef6-9444-41fb-92ab-20eacaae2768");
AssertRawId(new PhoneNumberIdentifier("otherFormat", rawId: "4:207ffef6-9444-41fb-92ab-20eacaae2768_207ffef6-9444-41fb-92ab-20eacaae2768"), "4:207ffef6-9444-41fb-92ab-20eacaae2768_207ffef6-9444-41fb-92ab-20eacaae2768");
AssertRawId(new PhoneNumberIdentifier("otherFormat", rawId: "4:+112345556789_207ffef6-9444-41fb-92ab-20eacaae2768"), "4:+112345556789_207ffef6-9444-41fb-92ab-20eacaae2768");
}

[Test]
Expand All @@ -74,8 +78,11 @@ static void AssertIdentifier(string rawId, CommunicationIdentifier expectedIdent
AssertIdentifier("8:gcch:45ab2481-1c1c-4005-be24-0ffb879b1130", new MicrosoftTeamsUserIdentifier("45ab2481-1c1c-4005-be24-0ffb879b1130", false, CommunicationCloudEnvironment.Gcch));
AssertIdentifier("8:teamsvisitor:45ab2481-1c1c-4005-be24-0ffb879b1130", new MicrosoftTeamsUserIdentifier("45ab2481-1c1c-4005-be24-0ffb879b1130", true, CommunicationCloudEnvironment.Public));
AssertIdentifier("8:orgid:legacyFormat", new MicrosoftTeamsUserIdentifier("legacyFormat", false, CommunicationCloudEnvironment.Public));
AssertIdentifier("4:112345556789", new PhoneNumberIdentifier("+112345556789"));
AssertIdentifier("4:otherFormat", new PhoneNumberIdentifier("+otherFormat"));
AssertIdentifier("4:+112345556789", new PhoneNumberIdentifier("+112345556789"));
AssertIdentifier("4:112345556789", new PhoneNumberIdentifier("112345556789"));
AssertIdentifier("4:207ffef6-9444-41fb-92ab-20eacaae2768", new PhoneNumberIdentifier("207ffef6-9444-41fb-92ab-20eacaae2768"));
AssertIdentifier("4:207ffef6-9444-41fb-92ab-20eacaae2768_207ffef6-9444-41fb-92ab-20eacaae2768", new PhoneNumberIdentifier("207ffef6-9444-41fb-92ab-20eacaae2768_207ffef6-9444-41fb-92ab-20eacaae2768"));
AssertIdentifier("4:+112345556789_207ffef6-9444-41fb-92ab-20eacaae2768", new PhoneNumberIdentifier("+112345556789_207ffef6-9444-41fb-92ab-20eacaae2768"));
AssertIdentifier("28:45ab2481-1c1c-4005-be24-0ffb879b1130", new UnknownIdentifier("28:45ab2481-1c1c-4005-be24-0ffb879b1130"));

Assert.Throws<ArgumentNullException>(() => CommunicationIdentifier.FromRawId(null));
Expand All @@ -97,7 +104,10 @@ public void RawIdStaysTheSameAfterConversionToIdentifierAndBack()
AssertRoundtrip("8:teamsvisitor:45ab2481-1c1c-4005-be24-0ffb879b1130");
AssertRoundtrip("8:orgid:legacyFormat");
AssertRoundtrip("4:112345556789");
AssertRoundtrip("4:otherFormat");
AssertRoundtrip("4:+112345556789");
AssertRoundtrip("4:207ffef6-9444-41fb-92ab-20eacaae2768");
AssertRoundtrip("4:207ffef6-9444-41fb-92ab-20eacaae2768_207ffef6-9444-41fb-92ab-20eacaae2768");
AssertRoundtrip("4:+112345556789_207ffef6-9444-41fb-92ab-20eacaae2768");
AssertRoundtrip("28:45ab2481-1c1c-4005-be24-0ffb879b1130");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class CommunicationIdentifierSerializerTest
private const string TestUserId = "User Id";
private const string TestRawId = "Raw Id";
private const string TestPhoneNumber = "+12223334444";
private const string TestPhoneNumberRawId = "4:12223334444";
private const string TestPhoneNumberRawId = "4:+12223334444";
private const string TestTeamsUserId = "Microsoft Teams User Id";
private const string TestTeamsCloud = "gcch";

Expand Down

0 comments on commit 230edec

Please sign in to comment.