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);
        }