public void Given_different_input_should_generate_different_Guid()
        {
            var generator = new DeterministicGuidGenerator(Guid.NewGuid());
            var guid1     = generator.Create("stream-1", ExpectedVersion.Any, "some-data");
            var guid2     = generator.Create("stream-1", 1, "some-data");

            guid2.ShouldNotBe(guid1);
        }
 /// <summary>
 ///     Creates a deterministic GUID.
 /// </summary>
 /// <param name="generator">
 ///     A <see cref="DeterministicGuidGenerator"/> instance.
 /// </param>
 /// <param name="streamId">
 ///     The Stream ID the message is being appended to.
 /// </param>
 /// <param name="expectedVersion">
 ///     The expected version of the message.
 /// </param>
 /// <param name="message">
 ///     A message to generate the GUID from.
 /// </param>
 /// <returns>
 ///     A deterministically generated GUID.
 /// </returns>
 public static Guid Create(
     this DeterministicGuidGenerator generator,
     string streamId,
     int expectedVersion,
     string message)
 => generator.Create(
     Encoding.UTF8.GetBytes(message)
     .Concat(BitConverter.GetBytes(expectedVersion))
     .Concat(Encoding.UTF8.GetBytes(streamId)).ToArray());
 static MetadataMessageIdGenerator()
 {
     s_deterministicGuidGenerator
         = new DeterministicGuidGenerator(Guid.Parse("8D1E0B02-0D78-408E-8211-F899BE6F8AA2"));
 }