public static void ExecuteViaReflection_void___Should_throw_ArgumentException___When_protocol_has_multiple_execute_methods_for_operation()
        {
            // Arrange
            var operation = new ChildVoidOperation();

            var protocol = new FamilyVoidProtocol();

            // Act
            var actual = Record.Exception(() => protocol.ExecuteViaReflection(operation));

            // Assert
            actual.AsTest().Must().BeOfType <ArgumentException>();
            actual.Message.AsTest().Must().ContainString(Invariant($"The specified '{nameof(ProtocolExtensionsTest)}.{nameof(FamilyVoidProtocol)}' protocol has more than one void Execute method with a single parameter that the specified '{nameof(ProtocolExtensionsTest)}.{nameof(ChildVoidOperation)}' operation is assignable to."));
        }
 public Task ExecuteAsync(ChildVoidOperation operation)
 {
     throw new NotImplementedException();
 }
 public void Execute(ChildVoidOperation operation)
 {
     throw new NotImplementedException();
 }