public static async Task GetProtocolAndExecuteViaReflectionAsync_void___Should_execute_the_operation___When_called()
        {
            // Arrange
            var operation1Counter = 4;
            var operation2Counter = 10;

            var operation1 = new SiblingOperation1
            {
                ActionToRun = () => operation1Counter++,
            };

            var operation2 = new SiblingOperation2
            {
                ActionToRun = () => operation2Counter++,
            };

            var protocolFactory = new ProtocolFactory();

            protocolFactory.RegisterProtocolForSupportedOperations(typeof(SiblingOperationProtocol), () => new SiblingOperationProtocol());

            // Act, Assert
            await protocolFactory.GetProtocolAndExecuteViaReflectionAsync(operation1);

            operation1Counter.AsTest().Must().BeEqualTo(6);

            await protocolFactory.GetProtocolAndExecuteViaReflectionAsync(operation2);

            operation2Counter.AsTest().Must().BeEqualTo(12);

            await protocolFactory.GetProtocolAndExecuteViaReflectionAsync(operation1);

            operation1Counter.AsTest().Must().BeEqualTo(8);
        }
            public async Task ExecuteAsync(SiblingOperation2 operation)
            {
                operation.ActionToRun?.Invoke();
                operation.ActionToRun?.Invoke();

                await Task.FromResult(1);
            }
        public static void ExecuteViaReflection_void___Should_execute_the_operation___When_called()
        {
            // Arrange
            var operation1Counter = 4;
            var operation2Counter = 10;

            var operation1 = new SiblingOperation1
            {
                ActionToRun = () => operation1Counter++,
            };

            var operation2 = new SiblingOperation2
            {
                ActionToRun = () => operation2Counter++,
            };

            var protocol = new SiblingOperationProtocol();

            // Act, Assert
            protocol.ExecuteViaReflection(operation1);
            operation1Counter.AsTest().Must().BeEqualTo(5);

            protocol.ExecuteViaReflection(operation2);
            operation2Counter.AsTest().Must().BeEqualTo(11);

            protocol.ExecuteViaReflection(operation1);
            operation1Counter.AsTest().Must().BeEqualTo(6);
        }
 public void Execute(SiblingOperation2 operation)
 {
     operation.ActionToRun?.Invoke();
 }
Пример #5
0
 public void Execute(SiblingOperation2 operation)
 {
     throw new NotImplementedException();
 }