Пример #1
0
 public void SharedLock_Save_CheckedOutAnother_Unlocked_MetaOnly()
 {
     ExpectError(typeof(InvalidContentActionException), () =>
     {
         var context = OperationContext.Create().Checkout("User1").SaveMetadata(42);
     });
 }
Пример #2
0
        public void SharedLock_Save_CheckedOutForMe_Unlocked_Upload()
        {
            var newContent = "Dolor sit amet...";

            var context = OperationContext.Create().Checkout().UpdateFileContent(newContent);

            Assert.AreEqual(newContent, RepositoryTools.GetStreamString(context.LoadTestFile().Binary.GetStream()));
        }
        public void Getting_an_unavailable_output_type_from_the_context_returns_null(IOperation op)
        {
            var sut = OperationContext.Create(op);

            var result = sut.GetOutput <object>();

            Assert.Null(result);
        }
Пример #4
0
        public void SharedLock_Save_CheckedOutForMe_Locked_MetaOnly()
        {
            var lockValue = "LCK_" + Guid.NewGuid();

            var context = OperationContext.Create().Lock(lockValue).Checkout().SaveMetadata(42);

            Assert.AreEqual(42, context.LoadTestFile().Index);
        }
        public void Input_data_is_not_provided_when_no_output_is_available(IOperation op, FakeInputOperation <object> inputOperation)
        {
            var sut = OperationContext.Create(op);

            sut.ProvideInputs(inputOperation);

            Assert.False(inputOperation.InputWasProvided);
        }
        private void ExecuteCompensatingOperation()
        {
            BehaviorWasApplied("Executing compensating operation");
            var context = OperationContext.Create(InnerOperation.GetInnermostOperation());

            context.ProvideInputs(_operation);
            _operation.Execute();
        }
        public void Registering_output_handlers_calls_registration_methods_on_nested_decorated_output_operation(FakeOutputOperation <object> decoratedOperation)
        {
            var sut       = OperationContext.Create(new FakeOperation());
            var operation = new FakeOperationBehavior().AttachTo(new FakeOperationBehavior().AttachTo(decoratedOperation));

            sut.RegisterOutputHandlers(operation);

            Assert.NotNull(decoratedOperation.OnReceiveOutput);
        }
        public void Registering_output_handlers_calls_registration_methods_on_output_operation(IOperation op)
        {
            var sut       = OperationContext.Create(op);
            var operation = new FakeOutputOperation <object>();

            sut.RegisterOutputHandlers(operation);

            Assert.NotNull(operation.OnReceiveOutput);
        }
Пример #9
0
        public void SharedLock_Delete_Locked_File()
        {
            var lockValue = "LCK_" + Guid.NewGuid();

            ExpectError(typeof(LockedNodeException), () =>
            {
                var context = OperationContext.Create().Lock(lockValue).Delete();
            });
        }
        public void Providing_inputs_does_not_set_input_when_input_is_missing(IOperation op)
        {
            var sut            = OperationContext.Create(op);
            var inputOperation = new TestInputOperation();

            sut.ProvideInputs(inputOperation);

            Assert.Null(inputOperation.Input);
        }
Пример #11
0
        public void SharedLock_Save_CheckedOutForMe_LockedSame_PutFile()
        {
            var newContent = "Dolor sit amet...";
            var lockValue  = "LCK_" + Guid.NewGuid();

            var context = OperationContext.Create().Lock(lockValue).Checkout().WopiSave(lockValue, newContent);

            Assert.AreEqual(newContent, RepositoryTools.GetStreamString(context.LoadTestFile().Binary.GetStream()));
        }
Пример #12
0
        public void SharedLock_Save_CheckedOutForMe_Locked_Upload()
        {
            var newContent = "Dolor sit amet...";
            var lockValue  = "LCK_" + Guid.NewGuid();

            ExpectError(typeof(LockedNodeException), () =>
            {
                var context = OperationContext.Create().Lock(lockValue).Checkout().UpdateFileContent(newContent);
            });
        }
Пример #13
0
        public void SharedLock_Save_CheckedOutForMe_Unlocked_PutFile()
        {
            var newContent = "Dolor sit amet...";
            var lockValue  = "LCK_" + Guid.NewGuid();

            var context = OperationContext.Create().Checkout().WopiSave(lockValue, newContent);

            // expected result: file was not changed
            Assert.AreEqual(OperationContext.OriginalFileContent, RepositoryTools.GetStreamString(context.LoadTestFile().Binary.GetStream()));
        }
        public void Adding_output_values_to_a_decorated_operation_updates_the_context_data(IOperation op, object output)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new TestOutputOperation {
                Output = output
            };

            sut.AddOutput(outputOperation, op);

            Assert.Equal(output, sut.GetOutput <object>());
        }
        public void Adding_output_values_does_not_update_the_context_data_when_not_supplied(IOperation op)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOperationBehavior().AttachTo(new TestOutputOperation {
                Output = null
            });

            sut.AddOutput(outputOperation, op);

            Assert.Null(sut.GetOutput <object>());
        }
        public void Providing_inputs_sets_input_properties_on_base_operation(IOperation op, object input)
        {
            var sut = OperationContext.Create(op);

            sut.AddData(input);
            var inputOperation = new TestInputOperationConcrete();

            sut.ProvideInputs(inputOperation);

            Assert.Equal(input, inputOperation.Input);
        }
Пример #17
0
        public void SharedLock_Move_Locked_File()
        {
            var lockValue = "LCK_" + Guid.NewGuid();

            ExpectError(typeof(LockedNodeException), () =>
            {
                var context = OperationContext.Create();
                var target  = context.CreateFolder();
                context.Lock(lockValue).Move(target);
            });
        }
        public void Providing_inputs_to_a_decorated_operation_sets_input_properties(IOperation op, object input)
        {
            var sut = OperationContext.Create(op);

            sut.AddData(input);
            var innerOperation = new TestInputOperation();
            var inputOperation = new FakeOperationBehavior().AttachTo(innerOperation);

            sut.ProvideInputs(inputOperation);

            Assert.Equal(input, innerOperation.Input);
        }
        public void You_cannot_get_output_of_a_specialized_type_directly_from_the_context(IOperation op, string output)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOutputOperation <string> {
                OutputValue = output
            };

            sut.RegisterOutputHandlers(outputOperation);
            outputOperation.Execute();

            var result = sut.GetOutput <object>(allowSpecializedClasses: false);

            Assert.Null(result);
        }
        public void You_can_get_output_directly_from_the_context(IOperation op, object output)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOutputOperation <object> {
                OutputValue = output
            };

            sut.RegisterOutputHandlers(outputOperation);
            outputOperation.Execute();

            var result = sut.GetOutput <object>();

            Assert.Equal(outputOperation.OutputValue, result);
        }
        public void You_can_get_output_of_a_specialized_type_directly_from_the_context_if_you_ask_for_it_explicitly(IOperation op, string output)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOutputOperation <string> {
                OutputValue = output
            };

            sut.RegisterOutputHandlers(outputOperation);
            outputOperation.Execute();

            var result = sut.GetOutput <object>(allowSpecializedClasses: true);

            Assert.Equal(outputOperation.OutputValue, result);
        }
        public void Data_flows_from_output_to_input_operations(IOperation op, object output)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var inputOperation = new FakeInputOperation <object>();

            sut.RegisterOutputHandlers(outputOperation);

            outputOperation.Execute();
            sut.ProvideInputs(inputOperation);

            Assert.Equal(outputOperation.OutputValue, inputOperation.ProvidedInput);
        }
        public void Data_flows_from_output_to_nested_decorated_input_operations(IOperation op, object output, FakeInputOperation <object> inputOperation)
        {
            var sut             = OperationContext.Create(op);
            var outputOperation = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var decoratedInputOperation = new FakeOperationBehavior().AttachTo(new FakeOperationBehavior().AttachTo(inputOperation));

            sut.RegisterOutputHandlers(outputOperation);

            outputOperation.Execute();
            sut.ProvideInputs(decoratedInputOperation);

            Assert.Equal(outputOperation.OutputValue, inputOperation.ProvidedInput);
        }
        public void Inputs_can_be_piped_to_child_operations(object input)
        {
            var innerInputOperation = new TestInputOperation();
            var inputOperation      = new TestPipedInputOperation(innerInputOperation)
            {
                Input = input
            };
            var op  = new FakeOperation(inputOperation);
            var sut = OperationContext.Create(op);

            sut.AddData(input);

            op.Execute();

            Assert.Same(input, innerInputOperation.Input);
        }
        public void The_most_recently_outputted_instance_of_a_data_type_is_available_as_input(IOperation op, object output)
        {
            var sut = OperationContext.Create(op);
            var outputOperation1 = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var outputOperation2 = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var inputOperation = new FakeInputOperation <object>();

            sut.RegisterOutputHandlers(outputOperation1);
            sut.RegisterOutputHandlers(outputOperation2);

            outputOperation1.Execute();
            outputOperation2.Execute();
            sut.ProvideInputs(inputOperation);

            Assert.Equal(outputOperation2.OutputValue, inputOperation.ProvidedInput);
        }
        public void Data_flows_from_the_most_recent_output_to_the_following_input_operation(IOperation op, object output)
        {
            var sut = OperationContext.Create(op);
            var outputOperation1 = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var outputOperation2 = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var inputOperation1 = new FakeInputOperation <object>();
            var inputOperation2 = new FakeInputOperation <object>();

            sut.RegisterOutputHandlers(outputOperation1);
            sut.RegisterOutputHandlers(outputOperation2);

            outputOperation1.Execute();
            sut.ProvideInputs(inputOperation1);
            outputOperation2.Execute();
            sut.ProvideInputs(inputOperation2);

            Assert.Equal(outputOperation1.OutputValue, inputOperation1.ProvidedInput);
            Assert.Equal(outputOperation2.OutputValue, inputOperation2.ProvidedInput);
        }
        public void Creating_an_operation_context_returns_new_instance(IOperation op)
        {
            var result = OperationContext.Create(op);

            Assert.NotNull(result);
        }
Пример #28
0
        public void SharedLock_Save_CheckedOutForMe_Unlocked_MetaOnly()
        {
            var context = OperationContext.Create().Checkout().SaveMetadata(42);

            Assert.AreEqual(42, context.LoadTestFile().Index);
        }