public void AddTransformation()
        {
            var action = new RestApi.CorporateActions.Transformation()
            {
                Id                     = Guid.NewGuid(),
                Stock                  = _StockWithoutCorporateActions,
                ActionDate             = new Date(2001, 01, 01),
                Description            = "Transformation",
                ImplementationDate     = new Date(2001, 01, 15),
                CashComponent          = 10.15m,
                RolloverRefliefApplies = true
            };

            action.ResultingStocks.Add(new RestApi.CorporateActions.Transformation.ResultingStock()
            {
                Stock          = _StockWithCorporateActions,
                AquisitionDate = new Date(2001, 04, 01),
                CostBase       = 0.50m,
                OriginalUnits  = 1,
                NewUnits       = 2
            });

            var result = _Service.AddCorporateAction(_StockWithoutCorporateActions, action);

            result.Should().HaveOkStatus();
            var resultStocks = new TransformationAddedEvent.ResultingStock(_StockWithCorporateActions, 1, 2, 0.50m, new Date(2001, 04, 01));

            _Events.Should().BeEquivalentTo(new[]
            {
                new TransformationAddedEvent(_StockWithoutCorporateActions, 1, action.Id, new Date(2001, 01, 01), "Transformation", new Date(2001, 01, 15), 10.15m, true, new [] { resultStocks })
            });
        }
        public static RestApi.CorporateActions.Transformation ToResponse(this Domain.CorporateActions.Transformation action)
        {
            var response = new RestApi.CorporateActions.Transformation();

            PopulateCorporateAction(response, action);

            response.CashComponent          = action.CashComponent;
            response.RolloverRefliefApplies = action.RolloverRefliefApplies;

            var resultStocks = action.ResultingStocks.Select(x => new RestApi.CorporateActions.Transformation.ResultingStock()
            {
                Stock          = x.Stock,
                OriginalUnits  = x.OriginalUnits,
                NewUnits       = x.NewUnits,
                CostBase       = x.CostBasePercentage,
                AquisitionDate = x.AquisitionDate
            });

            response.ResultingStocks.AddRange(resultStocks);

            return(response);
        }
예제 #3
0
        public void AddTransformation()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var stockId  = Guid.NewGuid();
            var actionId = Guid.NewGuid();
            var action   = new RestApi.CorporateActions.Transformation()
            {
                Id = actionId
            };

            var service = mockRepository.Create <ICorporateActionService>();

            service.Setup(x => x.AddCorporateAction(stockId, It.IsAny <RestApi.CorporateActions.Transformation>())).Returns(ServiceResult.Ok()).Verifiable();

            var controller = new CorporateActionController(service.Object);
            var result     = controller.AddCorporateAction(stockId, action);

            result.Should().BeOkResult();

            mockRepository.VerifyAll();
        }