public void GuidGrainIdWithExtensionAreSame() { Guid guidId = Guid.Parse("751D8030-9C84-4A91-816E-E95F64CE7588"); var guidIdAsString = new AdoGrainKey(guidId, null).ToString(); Assert.Equal(guidIdAsString, guidId.ToString()); }
public void LongGrainIdToStringAreSame() { const long LongGrainId = 1001; var longGrainIdAsString = new AdoGrainKey(LongGrainId, null).ToString(); Assert.Equal(longGrainIdAsString, LongGrainId.ToString(CultureInfo.InvariantCulture)); }
public void LongGrainIdToN1KeyAreSame() { const long LongGrainId = 1001; var longGrainIdAsN1 = new AdoGrainKey(LongGrainId, null); Assert.Equal(longGrainIdAsN1.N1Key, LongGrainId); }
public void LongGrainIdWithExtensionAreSame() { const long LongGrainId = 1001; const string ExtensionKey = "ExtensionKey"; var longGrainIdWitExtensionAsString = new AdoGrainKey(LongGrainId, ExtensionKey).ToString(); //AdoGrainKey helper class splits the grain key and extension key using character '#'. //The key and its extension are the two distinct elements. var grainKeys = longGrainIdWitExtensionAsString.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries); Assert.Equal(2, grainKeys.Length); Assert.Equal(grainKeys[0], LongGrainId.ToString(CultureInfo.InvariantCulture)); Assert.Equal(grainKeys[1], ExtensionKey); }
/// <summary> /// Extracts a grain ID as a string and appends the key extension with '#' infix is present. /// </summary> /// <param name="grainReference">The reference from which to extract the ID.</param> /// <returns>The grain ID as a string.</returns> /// <remarks>This likely should exist in Orleans core in more optimized form.</remarks> private static AdoGrainKey GrainIdAndExtensionAsString(GrainReference grainReference) { //Kudos for https://github.com/tsibelman for the algorithm. See more at https://github.com/dotnet/orleans/issues/1905. string keyExtension; AdoGrainKey key; if (grainReference.IsPrimaryKeyBasedOnLong()) { key = new AdoGrainKey(grainReference.GetPrimaryKeyLong(out keyExtension), keyExtension); } else { key = new AdoGrainKey(grainReference.GetPrimaryKey(out keyExtension), keyExtension); } return(key); }
/// <summary> /// Extracts a grain ID as a string and appends the key extension with '#' infix is present. /// </summary> /// <param name="grainReference">The reference from which to extract the ID.</param> /// <returns>The grain ID as a string.</returns> /// <remarks>This likely should exist in Orleans core in more optimized form.</remarks> private static AdoGrainKey GrainIdAndExtensionAsString(GrainReference grainReference) { //Kudos for https://github.com/tsibelman for the algorithm. See more at https://github.com/dotnet/orleans/issues/1905. string keyExtension; AdoGrainKey key; if(grainReference.IsPrimaryKeyBasedOnLong()) { key = new AdoGrainKey(grainReference.GetPrimaryKeyLong(out keyExtension), keyExtension); } else { key = new AdoGrainKey(grainReference.GetPrimaryKey(out keyExtension), keyExtension); } return key; }