public void ShouldThrowWhenRetrievingNonexistentOperation()
        {
            var manager = new ActiveOperationsManager();

            Action action = () => manager.RetrieveAndRemoveOperation(2);

            action.ShouldThrow <InvalidOperationException>();
        }
        public void ShouldRetrieveAndRemoveOperation()
        {
            var manager = new ActiveOperationsManager();
            var promise = manager.RegisterOperation(new TestOperation());

            var retrievedPromise = manager.RetrieveAndRemoveOperation(promise.Id);

            manager.ActiveOperations.ShouldBeEmpty();
            retrievedPromise.ShouldBe(promise);
        }