public void Ctor_Empty_CanCreateLocalUrl() { var ch = new CouchConnection(); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(5984, ch.BaseAddress.Port); Assert.AreEqual("application/json", ch.RequestEncoding); }
public void CouchCache_EmulateEmpty_AddsToCacheCorrectly() { var _factory = new Mock<IHttpTransportFactory>(MockBehavior.Strict); var _transport = new Mock<IHttpTransport>(MockBehavior.Strict); var _cache = new Mock<ICouchCache>(MockBehavior.Strict); var _response = new HttpResponse(); _response.ETag = "1234"; _response.StatusCode = HttpStatusCode.OK; _response.Data = "I am data"; _factory.Setup(x => x.Create(new UriBuilder("http://localhost:5984/").Uri)).Returns(_transport.Object); _cache.Setup(x => x["/integrationtest/d1d2bac2b4e65baf10be20bf08000189"]).Returns(() => null); _cache.Setup(x => x.Add(It.IsAny<CouchCacheEntry>())); _transport.Setup(x => x.Send("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", HttpVerb.Get, null, "application/json")).Returns(_response); var conn = new CouchConnection("http://localhost:5984/", _factory.Object); conn.Cache = _cache.Object; var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Assert.AreEqual("I am data", resp.Data); }
public void Update_Multiple_CreatesCorrectly() { var conn = new CouchConnection("http://127.0.0.1", 5984); var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var card1 = new BusinessCard { Name = "Bob Smith", Employer = "GiantMart", JobTitle = "Manager" }; var card2 = new BusinessCard { Name = "Jack Smith", Employer = "MediumMart", JobTitle = "Manager" }; var card3 = new BusinessCard { Name = "Bill Smith", Employer = "TinyMart", JobTitle = "Manager" }; var resp = db.AddMany(new[] {card1, card2, card3}).ToList(); Assert.IsNotNull(resp); Assert.AreEqual(3, resp.Count); Assert.IsNotNull(db.RawResponse); Assert.AreEqual(HttpStatusCode.Created, db.RawResponse.StatusCode); card1 = db.Get<BusinessCard>(resp[0].Id); card2 = db.Get<BusinessCard>(resp[1].Id); card3 = db.Get<BusinessCard>(resp[2].Id); card1.JobTitle = "Chicken"; card2.JobTitle = "Horse"; card3.JobTitle = "Monkey"; resp = db.SaveMany(new[] {card1, card2, card3}).ToList(); Assert.AreEqual(3, resp.Count); Assert.IsTrue(resp[0].Revision.Contains("2-")); Assert.IsTrue(resp[1].Revision.Contains("2-")); Assert.IsTrue(resp[2].Revision.Contains("2-")); Assert.IsNotNull(db.RawResponse); Assert.AreEqual(HttpStatusCode.Created, db.RawResponse.StatusCode); }
public void Ctor_FromUri_CanCreate() { var ch = new CouchConnection(new Uri("http://localhost")); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(80, ch.BaseAddress.Port); Assert.AreEqual("application/json", ch.RequestEncoding); }
public void KeyMatch_Array() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var query = new CouchViewQuery().Key(new[] { "apple", "orange" }); var results = db.GetDesignDocument("example").ExecuteView<TestEntity>("arraytest", query); Debug.WriteLine("-----------------------------------------"); if (results.IsOk) { if (results.HasResults) { foreach (var result in results) { Debug.WriteLine("Name : " + result.name); } } else { Debug.WriteLine("No results found :("); } } else { Debug.WriteLine("Error: " + results.Response.ErrorType + " / " + results.Response.ErrorMessage); } Assert.IsTrue(results.IsOk); Assert.Greater(results.Count, 0); }
public void KeyMatch_Array_LimitZero_ShouldReturnTotals() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var query = new CouchViewQuery().Key(new[] { "apple", "orange" }).Limit(0); var results = db.GetDesignDocument("example").ExecuteView<TestEntity>("arraytest", query); Debug.WriteLine("-----------------------------------------"); if (results.IsOk) { if (results.HasResults) { foreach (var result in results) { Debug.WriteLine("Name : " + result.name); } } else { Debug.WriteLine("TotalRows : " + results.TotalRows); Debug.WriteLine("Offset : " + results.Offset); } } else { Debug.WriteLine("Error: " + results.Response.ErrorType + " / " + results.Response.ErrorMessage); } Assert.Greater(results.TotalRows, 0); Assert.AreEqual(0, results.Count); }
public void CouchCache_EmulateCacheHit_ReturnsCachedData() { var _factory = new Mock<IHttpTransportFactory>(MockBehavior.Strict); var _transport = new Mock<IHttpTransport>(MockBehavior.Strict); var _cache = new Mock<ICouchCache>(MockBehavior.Strict); var _response = new HttpResponse(); _response.ETag = "1234"; _response.StatusCode = HttpStatusCode.NotModified; _response.Data = "There should be no data (as its a 304)"; _factory.Setup(x => x.Create(new UriBuilder("http://localhost:5984/").Uri)).Returns(_transport.Object); _cache.Setup(x => x["/integrationtest/d1d2bac2b4e65baf10be20bf08000189"]) .Returns(new CouchCacheEntry("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", "1234", "I am data")); _transport.Setup(x => x.CacheMatch("1234")); _transport.Setup(x => x.Send("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", HttpVerb.Get, null, "application/json")).Returns(_response); var conn = new CouchConnection("http://localhost:5984/", _factory.Object); conn.Cache = _cache.Object; var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Assert.AreEqual("I am data", resp.Data); }
public void Ctor_JustUrl_CanCreateWithEndSlash() { var ch = new CouchConnection("localhost/"); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(80, ch.BaseAddress.Port); Assert.AreEqual("application/json", ch.RequestEncoding); }
public void Ctor_Full_CanCreate() { var ch = new CouchConnection("http://localhost/", 1234, "application/xml"); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(1234, ch.BaseAddress.Port); Assert.AreEqual("application/xml", ch.RequestEncoding); }
public void Database_CanGetStatus() { var conn = new CouchConnection("http://127.0.0.1", 5984); var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var status = db.Status(); Assert.AreEqual("integrationtest", status.DatabaseName); }
public void Ctor_JustUrl_CanCreateHttps() { var ch = new CouchConnection("https://localhost"); Assert.AreEqual("https", ch.BaseAddress.Scheme); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(443, ch.BaseAddress.Port); Assert.AreEqual("application/json", ch.RequestEncoding); }
public void Add_Single_ReturnCodeIsCorrect() { var conn = new CouchConnection("http://127.0.0.1", 5984); var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var card = new BusinessCard { Name = "Bob Smith", Employer = "GiantMart", JobTitle = "Manager" }; var resp = db.Add(card); Assert.IsNotNull(resp); Assert.IsNotNull(db.RawResponse); Assert.AreEqual(HttpStatusCode.Created, db.RawResponse.StatusCode); }
public void CacheHeaderTest() { var conn = new CouchConnection("http://localhost:5984"); var cache = new HttpRuntimeCache(); cache.ExpirationWindow = 5; conn.Cache = cache; var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp2.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode); resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp2.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode); conn.DisableCache(); resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp2.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.OK, resp2.StatusCode); conn.EnableCache(); resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp2.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode); resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Status Code : " + resp2.StatusCode); Debug.WriteLine("--------------------------------"); Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode); }
public void CacheObjectTest() { var conn = new CouchConnection("http://localhost:5984"); var cache = new HttpRuntimeCache { ExpirationWindow = 5 }; conn.Cache = cache; var svc = new CouchService(conn); var db = svc.GetDatabase("integrationtest"); var resp = db.Get<BusinessCard>("d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Name : " + resp.Name); Debug.WriteLine("--------------------------------"); var resp2 = db.Get<BusinessCard>("d1d2bac2b4e65baf10be20bf08000189"); Debug.WriteLine("Name : " + resp2.Name); Debug.WriteLine("--------------------------------"); }
public void CreationSyntax() { var conn = new CouchConnection("http://localhost", 5984); var svc = new CouchService(conn); //Update existing view var view = svc["unittest"]["example"].Views["test"]; view.Map = "function(doc) { emit(doc._id, doc); }"; view.SaveChanges(); //Create new view var newView = svc["unittest"]["example"].CreateView("newTest"); newView.Map = "function(doc) { emit(doc._id, doc); }"; newView.SaveChanges(); var designDoc = svc["unittest"].CreateDesignDocument("example2"); //designDoc.Views.Add(); //var view = doc.CreateView("myTest"); //view.Map = "function(doc) { emit(doc._id, doc); }"; //doc.SaveChanges(); }
public void JsonTest() { var conn = new CouchConnection("http://localhost", 5984); var svc = new CouchService(conn); var db = svc.GetDatabase("unittest"); //var view = db.GetDesignDocument("example").View("test"); //Debug.WriteLine(view.Name); //var results = db.ExecuteView<BusinessCard>(view, new CouchViewQuery("e99b84cd49824eaf90b5f5c164b39e12")); //if(results.IsOk && results.HasResults) //{ // foreach (var card in results) // { // Debug.WriteLine(card.Name); // } //} //var testString = "{\"shows\" : { \"posts\" : \"function\", \"people\" : \"function(doc, req)\" } }"; //var obj = (JObject)JsonConvert.DeserializeObject(testString); //var dictionary = obj["shows"].Children().Cast<JProperty>().ToDictionary(k => k.Name, v => v.Value.Value<string>()); //foreach (var pair in dictionary) //{ // Debug.WriteLine(pair.Key + " / " + pair.Value); //} //var newObj = new JObject(); //var newTok = JToken.FromObject(dictionary); //newObj.Add("shows",newTok); //Debug.WriteLine(newObj); }
public void ViewSyntaxCheck() { var conn = new CouchConnection("http://www.couchdbtest.com", 5984); var ex = new BusinessCard(); var svc = new CouchService(conn); var db2 = svc["unittest"]; var doc = db2.GetDesignDocument("monkeytennis"); svc["unittest"].GetDesignDocument("monkeyTennis").Views["test"].Execute<BusinessCard>(new CouchViewQuery()); svc["unittest"].GetDesignDocument("monkeyTennis").Shows["test"].Execute("1234"); svc["unittest"].GetDesignDocument("monkeyTennis"); //Long svc.GetDatabase("unittest").GetDesignDocument("moneyTennis").Views["test"].Execute<BusinessCard>(new CouchViewQuery()); //Super short .. svc["unittest"]["moneyTennis"].Views["test"].Execute<BusinessCard>(new CouchViewQuery()); //var show = db.GetDesignDocument("example").Show("test"); //Debug.WriteLine(db.ExecuteShow(show, "e99b84cd49824eaf90b5f5c164b39e12")); //var qs = new NameValueCollection(); //qs.Add("format","xml"); //Debug.WriteLine(db.ExecuteShow(show, "e99b84cd49824eaf90b5f5c164b39e12", qs)); //var doc = db.GetDesignDocument("example"); //var list = doc.List("htmlList"); //var view = doc.View("test"); //var resp = db.ExecuteList(list, view, new CouchViewQuery()); //Debug.WriteLine(resp.ContentType); //Debug.WriteLine(resp.Output); //var docExample = db.GetDesignDocument("example"); //docExample.Info(); //docExample.View("test").Execute<BusinessCard>(); //docExample.Show("test").Execute<BusinessCard>(documentId, queryStringParams); //docExample.View("test").ExecuteList(); //var query = new CouchViewQuery { Key = "e99b84cd49824eaf90b5f5c164b39e12" }; //var results = db.ExecuteView<BusinessCard>(view, query); //if (results.IsOk) //{ // Debug.WriteLine("Error: " + results.Response.ErrorType + " / Reason : " + results.Response.ErrorMessage); // return; //} //if(results.HasResults) //{ // foreach (var result in results) // { // Debug.WriteLine("Name: " + result.Name + " - Id : " + result.Id); // } //} }
public void HttpOperation_Post_WithEncoding() { var testPath = "unittest/_bulk_docs"; var testData = "{\"docs\":[{\"name\":\"jim\",\"age\":0,\"isAlive\":false,\"_id\":\"0\"},{\"name\":\"billy\",\"age\":0,\"isAlive\":false,\"_id\":\"1\"}]}"; ; _httpTransport.Setup(x => x.Send(testPath, HttpVerb.Post, testData, "application/xml")).Returns(_httpResponse.Object); var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object); var repsonse = connection.Post(testPath, testData, "application/xml"); Assert.IsNotNull(repsonse); }
public void QuickTest() { var conn = new CouchConnection("http://localhost", 5984); var svc = new CouchService(conn); var db = svc["unittest"]; // -- ADDING FROM NEW --- var card = new BusinessCard { Name = "Bob Smith", Employer = "GiantMart", JobTitle = "Manager" }; var resp = db.Add(card); if (resp.IsOk) { Debug.WriteLine("Added ! Id : " + resp.Id + " / Revision: " + resp.Revision); } else { Debug.WriteLine("Problem updating : " + resp.ErrorType + " / Reason : " + resp.ErrorMessage); } // -- RETREIVEING & UPDATING -- var newCard = db.Get<BusinessCard>(resp.Id); newCard.Name = "Bobbyd Smith"; resp = db.Save(newCard); if (resp.IsOk) { Debug.WriteLine("Updated ! Id : " + resp.Id + " / Revision: " + resp.Revision); } // -- DELETEING -- resp = db.Delete(resp.Id, resp.Revision); if (resp.IsOk) { Debug.WriteLine("Deleted ! Id : " + resp.Id + " / Revision: " + resp.Revision); } }
public void TempView_CanSerialize() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("unittest"); var temp = new CouchTempView { Map = "function(doc) {\n emit(null, doc);\n}" }; var results = db.ExecuteTempView<BusinessCard>(temp, new CouchViewQuery()); if (results.IsOk) { if (results.HasResults) { foreach (var result in results) { Debug.WriteLine(result.Name); } } else { Debug.WriteLine("Nothing found :("); } } else { Debug.WriteLine("Error: " + results.Response.ErrorType + " / " + results.Response.ErrorMessage); } }
public void HttpOperation_Put_WithEncoding() { var testPath = "unittest/_revs_limit"; var testData = "1500"; _httpTransport.Setup(x => x.Send(testPath, HttpVerb.Put, testData, "application/xml")).Returns(_httpResponse.Object); var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object); var repsonse = connection.Put(testPath, testData, "application/xml"); Assert.IsNotNull(repsonse); }
public void Show_CanExecuteCorrectly() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("unittest"); var result = db.GetDesignDocument("example").ExecuteShow("test"); Debug.WriteLine(result.Output); result = db.GetDesignDocument("example").ExecuteShow("test", "e99b84cd49824eaf90b5f5c164b39e12"); Debug.WriteLine(result.Output); result = db.GetDesignDocument("example").ExecuteShow("test", "e99b84cd49824eaf90b5f5c164b39e12", new NameValueCollection { { "format", "xml" } }); Debug.WriteLine(result.Output); }
public void NewSyntax() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("unittest"); var doc = db.GetDesignDocument("example"); //-[ View Execution ]--------------------------------------------- var results = doc.ExecuteView<BusinessCard>("test", new CouchViewQuery()); if (results.IsOk && results.HasResults) { foreach (var i in results) { Debug.WriteLine(i.Name); } } //-[ Add New View ]--------------------------------------------- //var newView = new CouchView("myNewView"); //newView.Map = "function(test)"; //newView.Reduce = "function(blah); //doc.Add(newView); //db.SaveChanges(doc); //-[ Edit Existing View ]--------------------------------------------- //var oldView = doc.View("test"); //Debug.WriteLine(oldView.Map); //doc.View("test").Map = "function(new)"; //Set HasChanges() //Debug.WriteLine(doc.View("test").Map); //db //-[ Show ]--------------------------------------------- //var results = doc.ExecuteShow(doc.Show("test")); //var results = doc.ExecuteShow(doc.Show("test"),"docId"); var showResults = doc.ExecuteShow("test", "e99b84cd49824eaf90b5f5c164b39e12", new NameValueCollection { { "format", "xml" } }); if (showResults.IsOk) { Debug.WriteLine(showResults.Output); } }
public void HttpOperation_Head() { var testPath = "/"; _httpTransport.Setup(x => x.Send(testPath, HttpVerb.Head, null, null)).Returns(_httpResponse.Object); var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object); var repsonse = connection.Head(testPath); Assert.IsNotNull(repsonse); }
public void Ctor_JustUrl_CanCreatewithPortInString() { var ch = new CouchConnection("http://localhost:80/"); Assert.AreEqual("localhost", ch.BaseAddress.Host); Assert.AreEqual(80, ch.BaseAddress.Port); Assert.AreEqual("application/json", ch.RequestEncoding); }
public CouchService(string connectionString) { Connection = new CouchConnection(connectionString); }
public void HttpOperation_Copy() { var toPath = "/"; var fromPath = "/"; _httpTransport.Setup(x => x.Send(toPath, HttpVerb.Copy, fromPath, _defaultEncoding)).Returns(_httpResponse.Object); var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object); var repsonse = connection.Copy(toPath, fromPath); Assert.IsNotNull(repsonse); }
public void HttpOperation_Get_WithEncoding() { var testPath = "/"; _httpTransport.Setup(x => x.Send(testPath, HttpVerb.Get, null, "application/xml")).Returns(_httpResponse.Object); var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object); var repsonse = connection.Get(testPath,"application/xml"); Assert.IsNotNull(repsonse); }
public void List_CanExecuteCorrectly() { var conn = new CouchConnection("http://localhost:5984/"); var svc = new CouchService(conn); var db = svc.GetDatabase("unittest"); var result = db.GetDesignDocument("example").ExecuteList("htmlList", "test", new CouchViewQuery()); Debug.WriteLine(result.Output); var query = new CouchViewQuery().Key("e99b84cd49824eaf90b5f5c164b39e12"); result = db.GetDesignDocument("example").ExecuteList("htmlList", "test", query ); Debug.WriteLine(result.Output); }
public void Header_SetHeader_AppearsInCollection() { var ch = new CouchConnection("http://localhost/"); ch.SetHeader("User-Agent", "user1"); Assert.AreEqual(1, ch.Transport.HeaderCount()); }