public void TestFetchAndStoreDefaultSchema()
        {
            // Get Default schema
            var getSchemaResult = Client.GetSearchSchema("_yz_default");
            Assert.True(getSchemaResult.IsSuccess, getSchemaResult.ErrorMessage);

            var defaultSchema = getSchemaResult.Value;

            defaultSchema.Name.ShouldNotBeNull();
            defaultSchema.Content.ShouldNotBeNull();

            // Store as new schema
            var newSchemaName = "test_schema" + Random.Next();
            const string randomComment = "<!-- Random Comment -->";
            var newSchemaContent = defaultSchema.Content + randomComment;
            var newSchema = new SearchSchema(newSchemaName, newSchemaContent);

            var putSchemaResult = Client.PutSearchSchema(newSchema);
            putSchemaResult.IsSuccess.ShouldBeTrue(putSchemaResult.ErrorMessage);

            // Fetch new schema and compare
            var getSchemaResult2 = Client.GetSearchSchema(newSchemaName);
            var fetchedNewSchema = getSchemaResult2.Value;

            Assert.AreEqual(newSchemaName, fetchedNewSchema.Name);
            Assert.AreNotEqual(defaultSchema.Content, fetchedNewSchema.Content); // Should differ by the added comment
            Assert.AreEqual(newSchemaContent, fetchedNewSchema.Content);
            Assert.IsTrue(fetchedNewSchema.Content.Contains(randomComment));
        }
        public void SetUpFixture()
        {
            if (!File.Exists(blogPostSchemaFileName))
            {
                Console.WriteLine("Writing {0} in {1}", blogPostSchemaFileName, Environment.CurrentDirectory);
                var req = WebRequest.Create(blogPostSchema);
                var rsp = req.GetResponse();
                var stream = rsp.GetResponseStream();
                string line = string.Empty;
                using (var writer = new StreamWriter(blogPostSchemaFileName))
                {
                    using (var rdr = new StreamReader(stream))
                    {
                        while ((line = rdr.ReadLine()) != null)
                        {
                            writer.WriteLine(line);
                        }
                    }
                }
            }

            base.CreateClient();

            var getSchemaResult = client.GetSearchSchema("blog_post_schema");
            if (!getSchemaResult.IsSuccess)
            {
                var schemaXml = File.ReadAllText(blogPostSchemaFileName);
                var schema = new SearchSchema(blogPostSchemaName, schemaXml);
                var rslt = client.PutSearchSchema(schema);
                CheckResult(rslt);

                WaitForSearch();

                var idx = new SearchIndex("blog_posts", "blog_post_schema");
                rslt = client.PutSearchIndex(idx);
                CheckResult(rslt);
            }
        }