Esempio n. 1
0
        public void DeserializeReturnOfCapital()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"returnofcapital\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"recordDate\":\"2000-01-01\","
                       + "\"amount\":45.00,"
                       + "\"createCashTransaction\":true}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new ReturnOfCapital()
            {
                Id                    = transactionId,
                Stock                 = stockId,
                TransactionDate       = new Date(2000, 01, 10),
                Comment               = "comment",
                Description           = "description",
                RecordDate            = new Date(2000, 01, 01),
                Amount                = 45.00m,
                CreateCashTransaction = true
            };

            transaction.Should().BeEquivalentTo(expected);
        }
Esempio n. 2
0
        public void DeserializeUnitCountAdjustment()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"unitcountadjustment\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"originalUnits\":1,"
                       + "\"newUnits\":2}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new UnitCountAdjustment()
            {
                Id              = transactionId,
                Stock           = stockId,
                TransactionDate = new Date(2000, 01, 10),
                Comment         = "comment",
                Description     = "description",
                OriginalUnits   = 1,
                NewUnits        = 2
            };

            transaction.Should().BeEquivalentTo(expected);
        }
Esempio n. 3
0
        public void DeserializeCostBaseAdjustment()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"costbaseadjustment\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"percentage\":0.35}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new CostBaseAdjustment()
            {
                Id              = transactionId,
                Stock           = stockId,
                TransactionDate = new Date(2000, 01, 10),
                Comment         = "comment",
                Description     = "description",
                Percentage      = 0.35m
            };

            transaction.Should().BeEquivalentTo(expected);
        }
        public void DeserializeRelativeNtaResponse()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"trust\":true,"
                       + "\"category\":\"internationalProperty\","
                       + "\"relativeNtas\":["
                       + "{\"fromDate\":\"2001-01-02\",\"toDate\":\"2001-02-03\",\"relativeNtas\":["
                       + "{\"childSecurity\":\"ABC1\",\"percentage\":0.40},"
                       + "{\"childSecurity\":\"ABC2\",\"percentage\":0.60}"
                       + "]}"
                       + "]}";

            var command = serializer.Deserialize <RelativeNtaResponse>(json);

            var expected = new RelativeNtaResponse()
            {
                Id      = id,
                AsxCode = "ABC",
                Name    = "ABC Pty Ltd",
            };
            var childNtas = new RelativeNtaResponse.ChildSecurityNta[]
            {
                new RelativeNtaResponse.ChildSecurityNta("ABC1", 0.40m),
                new RelativeNtaResponse.ChildSecurityNta("ABC2", 0.60m),
            };

            expected.AddRelativeNta(new Date(2001, 01, 02), new Date(2001, 02, 03), childNtas);

            command.Should().BeEquivalentTo(expected);
        }
Esempio n. 5
0
        public void DeserializeCashTransaction()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"cashtransaction\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"cashTransactionType\":\"fee\","
                       + "\"amount\":15.00}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new CashTransaction()
            {
                Id                  = transactionId,
                Stock               = stockId,
                TransactionDate     = new Date(2000, 01, 10),
                Comment             = "comment",
                Description         = "description",
                CashTransactionType = CashTransactionType.Fee,
                Amount              = 15.00m
            };

            transaction.Should().BeEquivalentTo(expected);
        }
Esempio n. 6
0
        public void DeserializeAquisition()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"aquisition\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"units\":\"100\","
                       + "\"averagePrice\":\"12.00\","
                       + "\"transactionCosts\":\"19.95\","
                       + "\"createCashTransaction\":\"true\"}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new Aquisition()
            {
                Id                    = transactionId,
                Stock                 = stockId,
                TransactionDate       = new Date(2000, 01, 10),
                Comment               = "comment",
                Description           = "description",
                Units                 = 100,
                AveragePrice          = 12.00m,
                TransactionCosts      = 19.95m,
                CreateCashTransaction = true
            };

            transaction.Should().BeEquivalentTo(expected);
        }
Esempio n. 7
0
        public void DeserializeCapitalReturn()
        {
            var serializer = new RestClientSerializer();

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

            var json = "{\"id\":\"" + actionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"capitalReturn\","
                       + "\"actionDate\":\"2000-01-10\","
                       + "\"description\":\"description\","
                       + "\"paymentDate\":\"2000-02-01\","
                       + "\"amount\":12.00}";

            var transaction = serializer.Deserialize <CorporateAction>(json);

            var expected = new CapitalReturn()
            {
                Id          = actionId,
                Stock       = stockId,
                ActionDate  = new Date(2000, 01, 10),
                Description = "description",
                PaymentDate = new Date(2000, 02, 01),
                Amount      = 12.00m
            };

            transaction.Should().BeEquivalentTo(expected);
        }
Esempio n. 8
0
        public void DeserializeSplitConsolidation()
        {
            var serializer = new RestClientSerializer();

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

            var json = "{\"id\":\"" + actionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"splitConsolidation\","
                       + "\"actionDate\":\"2000-01-10\","
                       + "\"description\":\"description\","
                       + "\"originalUnits\":1,"
                       + "\"newUnits\":2}";

            var transaction = serializer.Deserialize <CorporateAction>(json);

            var expected = new SplitConsolidation()
            {
                Id            = actionId,
                Stock         = stockId,
                ActionDate    = new Date(2000, 01, 10),
                Description   = "description",
                OriginalUnits = 1,
                NewUnits      = 2
            };

            transaction.Should().BeEquivalentTo(expected);
        }
        public void DeserializeStockPriceResponse()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"closingPrices\":["
                       + "{\"date\":\"2000-01-02\",\"price\":12.00},"
                       + "{\"date\":\"2000-01-03\",\"price\":13.00}"
                       + "]}";

            var command = serializer.Deserialize <StockPriceResponse>(json);

            var expected = new StockPriceResponse()
            {
                Id      = id,
                AsxCode = "ABC",
                Name    = "ABC Pty Ltd"
            };

            expected.AddClosingPrice(new Date(2000, 01, 02), 12.00m);
            expected.AddClosingPrice(new Date(2000, 01, 03), 13.00m);

            command.Should().BeEquivalentTo(expected);
        }
        public void DeserializeChangeDividendRulesCommand()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"changeDate\":\"2013-01-02\","
                       + "\"companyTaxRate\":0.30,"
                       + "\"dividendRoundingRule\":\"truncate\","
                       + "\"drpActive\":true,"
                       + "\"drpMethod\":\"roundDown\"}";

            var command = serializer.Deserialize <ChangeDividendRulesCommand>(json);

            var expected = new ChangeDividendRulesCommand()
            {
                Id                   = id,
                ChangeDate           = new Date(2013, 01, 02),
                CompanyTaxRate       = 0.30m,
                DividendRoundingRule = RoundingRule.Truncate,
                DrpActive            = true,
                DrpMethod            = DrpMethod.RoundDown
            };

            command.Should().BeEquivalentTo(expected);
        }
        public void DeserializeStockHistoryResponse()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"trust\":true,"
                       + "\"listingDate\":\"2000-01-01\","
                       + "\"delistedDate\":\"9999-12-31\","
                       + "\"history\":["
                       + "{\"fromDate\":\"2001-01-02\",\"toDate\":\"2001-01-03\",\"asxCode\":\"OLD\",\"name\":\"Old Name\",\"category\":\"australianStocks\"}"
                       + "],"
                       + "\"dividendRules\":["
                       + "{\"fromDate\":\"2001-01-02\",\"toDate\":\"2001-01-03\",\"companyTaxRate\":0.45,\"roundingRule\":\"truncate\",\"drpActive\":true,\"drpMethod\":\"roundDown\"}"
                       + "]}";

            var command = serializer.Deserialize <StockHistoryResponse>(json);

            var expected = new StockHistoryResponse()
            {
                Id           = id,
                AsxCode      = "ABC",
                Name         = "ABC Pty Ltd",
                ListingDate  = new Date(2000, 01, 01),
                DelistedDate = Date.MaxValue,
            };

            expected.AddHistory(new Date(2001, 01, 02), new Date(2001, 01, 03), "OLD", "Old Name", AssetCategory.AustralianStocks);
            expected.AddDividendRules(new Date(2001, 01, 02), new Date(2001, 01, 03), 0.45m, RoundingRule.Truncate, true, DrpMethod.RoundDown);

            command.Should().BeEquivalentTo(expected);
        }
Esempio n. 12
0
        public void DeserializeOpeningBalance()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"openingbalance\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"units\":100,"
                       + "\"costBase\":1450.45,"
                       + "\"aquisitionDate\":\"2000-01-01\"}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new OpeningBalance()
            {
                Id              = transactionId,
                Stock           = stockId,
                TransactionDate = new Date(2000, 01, 10),
                Comment         = "comment",
                Description     = "description",
                Units           = 100,
                CostBase        = 1450.45m,
                AquisitionDate  = new Date(2000, 01, 01)
            };

            transaction.Should().BeEquivalentTo(expected);
        }
        public void DeserializeCreateStockCommand()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"listingDate\":\"2013-01-02\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"trust\":true,"
                       + "\"category\":\"internationalProperty\","
                       + "\"childSecurities\":["
                       + "{\"asxCode\":\"ABC1\",\"name\":\"Child1\",\"trust\":true},"
                       + "{\"asxCode\":\"ABC2\",\"name\":\"Child2\",\"trust\":false}"
                       + "]}";

            var command = serializer.Deserialize <CreateStockCommand>(json);

            var expected = new CreateStockCommand()
            {
                Id          = id,
                ListingDate = new Date(2013, 01, 02),
                AsxCode     = "ABC",
                Name        = "ABC Pty Ltd",
                Trust       = true,
                Category    = AssetCategory.InternationalProperty,
            };

            expected.AddChildSecurity("ABC1", "Child1", true);
            expected.AddChildSecurity("ABC2", "Child2", false);
            command.Should().BeEquivalentTo(expected);
        }
        public void ExtraFieldReceived()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"field\":\"Hello\",\"extra\":\"value\"}";

            var result = serializer.Deserialize <SingleValueTestData>(json);

            result.Should().BeEquivalentTo(new { Field = "Hello" });
        }
        public void DateType()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"date\":\"2004-01-02\"}";

            var result = serializer.Deserialize <DateTestData>(json);

            result.Should().BeEquivalentTo(new { Date = new Date(2004, 01, 02) });
        }
        public void TimeType()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"time\":\"13:45:01\"}";

            var result = serializer.Deserialize <TimeTestData>(json);

            result.Should().BeEquivalentTo(new { Time = new Time(13, 45, 01) });
        }
Esempio n. 17
0
        public void DeserializeAuthenticationResponse()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"token\":\"tokendata\"}";

            var response = serializer.Deserialize <AuthenticationResponse>(json);

            response.Should().BeEquivalentTo(new AuthenticationResponse()
            {
                Token = "tokendata"
            });
        }
Esempio n. 18
0
        public void DeserializeAuthenticationRequest()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"userName\":\"JoeBlogs\",\"password\":\"secret\"}";

            var request = serializer.Deserialize <AuthenticationRequest>(json);

            request.Should().BeEquivalentTo(new AuthenticationRequest()
            {
                UserName = "******", Password = "******"
            });
        }
        public void NotAllFieldsReceived()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"string\":\"Hello\"}";

            var result = serializer.Deserialize <StandardTypesTestData>(json);

            var expected = new StandardTypesTestData()
            {
                String = "Hello"
            };

            result.Should().BeEquivalentTo(expected);
        }
        public void DeserializeFromStreamTypeWrong()
        {
            var serializer = new RestClientSerializer();

            var json   = "{\"field\":\"Hello\"}";
            var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));

            StandardTypesTestData result;

            using (var streamReader = new StreamReader(stream))
            {
                result = serializer.Deserialize <StandardTypesTestData>(streamReader);
            }

            result.Should().BeEquivalentTo(new StandardTypesTestData());
        }
        public void DeserializeFromStreamInvalidJson()
        {
            var serializer = new RestClientSerializer();

            var json   = "{\"field\" \"Hello\"}";
            var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));

            Action a = () =>
            {
                using (var streamReader = new StreamReader(stream))
                {
                    serializer.Deserialize <StandardTypesTestData>(streamReader);
                }
            };

            a.Should().ThrowExactly <Newtonsoft.Json.JsonReaderException>();
        }
Esempio n. 22
0
        public void DeserializeTypePropertyIncorrectValue()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"xxx\","
                       + "\"actionDate\":\"2000-01-10\","
                       + "\"description\":\"description\"}";

            Action a = () => serializer.Deserialize <CorporateAction>(json);

            a.Should().ThrowExactly <JsonReaderException>();
        }
        public void DeserializeStockResponse()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"category\":\"australianStocks\","
                       + "\"trust\":true,"
                       + "\"stapledSecurity\":true,"
                       + "\"listingDate\":\"2000-01-01\","
                       + "\"delistedDate\":\"9999-12-31\","
                       + "\"lastPrice\":12.00,"
                       + "\"companyTaxRate\":0.30,"
                       + "\"dividendRoundingRule\":\"round\","
                       + "\"drpActive\":true,"
                       + "\"drpMethod\":\"roundDown\","
                       + "\"childSecurities\":["
                       + "{\"asxCode\":\"ABC1\",\"name\":\"Child\",\"trust\":true}"
                       + "]}";

            var command = serializer.Deserialize <StockResponse>(json);

            var expected = new StockResponse()
            {
                Id                   = id,
                AsxCode              = "ABC",
                Name                 = "ABC Pty Ltd",
                Category             = AssetCategory.AustralianStocks,
                Trust                = true,
                StapledSecurity      = true,
                ListingDate          = new Date(2000, 01, 01),
                DelistedDate         = Date.MaxValue,
                LastPrice            = 12.00m,
                CompanyTaxRate       = 0.30m,
                DividendRoundingRule = RoundingRule.Round,
                DrpActive            = true,
                DrpMethod            = DrpMethod.RoundDown
            };

            expected.AddChild("ABC1", "Child", true);

            command.Should().BeEquivalentTo(expected);
        }
        public void DeserializeDelistStockCommand()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"delistingDate\":\"2013-01-02\"}";

            var command = serializer.Deserialize <DelistStockCommand>(json);

            var expected = new DelistStockCommand()
            {
                Id            = id,
                DelistingDate = new Date(2013, 01, 02)
            };

            command.Should().BeEquivalentTo(expected);
        }
        public void StandardTypes()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"integer\":5,\"string\":\"Hello\", \"decimal\":123.45,\"dateTime\":\"2004-02-03T14:22:04\"}";

            var result = serializer.Deserialize <StandardTypesTestData>(json);

            var expected = new StandardTypesTestData()
            {
                Integer  = 5,
                String   = "Hello",
                Decimal  = 123.45m,
                DateTime = new DateTime(2004, 02, 03, 14, 22, 04)
            };

            result.Should().BeEquivalentTo(expected);
        }
Esempio n. 26
0
        public void DeserializeTypePropertyMissing()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\"}";


            Action a = () => serializer.Deserialize <Transaction>(json);

            a.Should().ThrowExactly <JsonReaderException>();
        }
Esempio n. 27
0
        public void DeserializeIncomeReceived()
        {
            var serializer = new RestClientSerializer();

            var transactionId = Guid.NewGuid();
            var stockId       = Guid.NewGuid();

            var json = "{\"id\":\"" + transactionId + "\","
                       + "\"stock\":\"" + stockId + "\","
                       + "\"type\":\"incomereceived\","
                       + "\"transactionDate\":\"2000-01-10\","
                       + "\"comment\":\"comment\","
                       + "\"description\":\"description\","
                       + "\"recordDate\":\"2000-01-02\","
                       + "\"frankedAmount\":10.00,"
                       + "\"unfrankedAmount\":11.00,"
                       + "\"frankingCredits\":3.00,"
                       + "\"interest\":4.00,"
                       + "\"taxDeferred\":7.00,"
                       + "\"drpCashBalance\":9.00,"
                       + "\"createCashTransaction\":true}";

            var transaction = serializer.Deserialize <Transaction>(json);

            var expected = new IncomeReceived()
            {
                Id                    = transactionId,
                Stock                 = stockId,
                TransactionDate       = new Date(2000, 01, 10),
                Comment               = "comment",
                Description           = "description",
                RecordDate            = new Date(2000, 01, 02),
                FrankedAmount         = 10.00m,
                UnfrankedAmount       = 11.00m,
                FrankingCredits       = 3.00m,
                Interest              = 4.00m,
                TaxDeferred           = 7.00m,
                DrpCashBalance        = 9.00m,
                CreateCashTransaction = true
            };

            transaction.Should().BeEquivalentTo(expected);
        }
        public void DeserializeUpdateClosingPricesCommand()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"closingPrices\":["
                       + "{\"date\":\"2000-01-01\",\"price\":10.00}"
                       + "]}";

            var command = serializer.Deserialize <UpdateClosingPricesCommand>(json);

            var expected = new UpdateClosingPricesCommand()
            {
                Id = id
            };

            expected.AddClosingPrice(new Date(2000, 01, 01), 10.00m);

            command.Should().BeEquivalentTo(expected);
        }
        public void DeserializeFromStream()
        {
            var serializer = new RestClientSerializer();

            var json   = "{\"field\":\"Hello\"}";
            var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));

            SingleValueTestData result;

            using (var streamReader = new StreamReader(stream))
            {
                result = serializer.Deserialize <SingleValueTestData>(streamReader);
            }

            var expected = new SingleValueTestData()
            {
                Field = "Hello"
            };

            result.Should().BeEquivalentTo(expected);
        }
        public void DeserializeTradingCalander()
        {
            var serializer = new RestClientSerializer();

            var json = "{\"year\":2013,\"nonTradingDays\":["
                       + "{\"date\":\"2013-01-01\",\"description\":\"New Year's Day\"},"
                       + "{\"date\":\"2013-12-25\",\"description\":\"Christmas Day\"}]}";

            var request = serializer.Deserialize <TradingCalendar>(json);

            var expected = new
            {
                Year           = 2013,
                NonTradingDays = new object[] {
                    new { Date = new Date(2013, 01, 01), Description = "New Year's Day" },
                    new { Date = new Date(2013, 12, 25), Description = "Christmas Day" }
                }
            };

            request.Should().BeEquivalentTo(expected);
        }