public void ExceptionIsThrownForInvalidAliasNameForQuery()
        {
            QueryRootQuery query       = new QueryRootQuery();
            AliasException caughtError = null;

            try {
                query.node(
                    node => node.id(),
                    alias: "$$$", id: "1234"
                    );
            } catch (AliasException error) {
                caughtError = error;
            }

            Assert.IsNotNull(caughtError);
            Assert.AreEqual("`alias` was invalid format", caughtError.Message);
        }
        public void ExceptionIsThrownForBlankAliasInQuery()
        {
            AliasException caughtError = null;
            QueryRootQuery query       = new QueryRootQuery();

            try {
                query.node(
                    node => node.id(),
                    alias: "", id: "1234"
                    );
            } catch (AliasException error) {
                caughtError = error;
            }

            Assert.IsNotNull(caughtError);
            Assert.AreEqual("`alias` cannot be a blank string", caughtError.Message);
        }
        public void ExceptionIsThrownForBlankAliasInResponse()
        {
            string stringJSON = @"{
                ""aliasName___node"": {
                    ""id"": ""1""
                }
            }";

            AliasException caughtError           = null;
            Dictionary <string, object> dataJSON = (Dictionary <string, object>)Json.Deserialize(stringJSON);

            QueryRoot response = new QueryRoot(dataJSON);

            try {
                response.node(alias: "").id();
            } catch (AliasException error) {
                caughtError = error;
            }

            Assert.IsNotNull(caughtError);
            Assert.AreEqual("`alias` cannot be a blank string", caughtError.Message);
        }
        public void ExceptionIsThrownForInvalidAliasNameForResponse()
        {
            string stringJSON = @"{
                ""aliasName___customerAddress"": {
                    ""city"": ""Toronto""
                }
            }";

            AliasException caughtError           = null;
            Dictionary <string, object> dataJSON = (Dictionary <string, object>)Json.Deserialize(stringJSON);

            QueryRoot response = new QueryRoot(dataJSON);

            try {
                response.node(alias: "$$$").id();
            } catch (AliasException error) {
                caughtError = error;
            }

            Assert.IsNotNull(caughtError);
            Assert.AreEqual("`alias` was invalid format", caughtError.Message);
        }