public async Task AddCorporateAction(CorporateAction action)
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var actionId = Guid.NewGuid();

            action.Id = actionId;
            var stockId = Guid.NewGuid();

            action.Stock = stockId;

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.PostAsync <CorporateAction>(
                                     It.Is <string>(x => x == "stocks/" + stockId + "/corporateactions"),
                                     It.Is <CorporateAction>(x => x.GetType() == action.GetType() && x.Id == actionId)))
            .Returns(Task.CompletedTask)
            .Verifiable();

            var resource = new CorporateActionResource(messageHandler.Object);

            await resource.Add(stockId, action);

            mockRepository.Verify();
        }
        public async Task GetAll()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var stockId = Guid.NewGuid();

            var actions = new List <CorporateAction>();

            actions.AddRange(CorporateActionTypesData().Select(x => (CorporateAction)x[0]));


            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.GetAsync <List <CorporateAction> >(It.Is <string>(x => x == "stocks/" + stockId + "/corporateactions")))
            .Returns(Task <List <CorporateAction> > .FromResult(actions))
            .Verifiable();

            var resource = new CorporateActionResource(messageHandler.Object);

            var result = await resource.GetAll(stockId);

            result.Should().BeEquivalentTo(actions);

            mockRepository.Verify();
        }
        public async Task GetCorporateAction(CorporateAction action)
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var actionId = Guid.NewGuid();

            action.Id = actionId;
            var stockId = Guid.NewGuid();

            action.Stock = stockId;

            var messageHandler = mockRepository.Create <IRestClientMessageHandler>();

            messageHandler.Setup(x => x.GetAsync <CorporateAction>(It.Is <string>(x => x == "stocks/" + stockId + "/corporateactions/" + actionId)))
            .Returns(Task <CorporateAction> .FromResult(action as CorporateAction))
            .Verifiable();

            var resource = new CorporateActionResource(messageHandler.Object);

            var result = await resource.Get(stockId, actionId);

            result.Should().BeOfType(action.GetType()).And.BeEquivalentTo(new { Id = actionId });

            mockRepository.Verify();
        }