Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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("--------------------------------");
        }
Esempio n. 15
0
        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();
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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);
            //    }
            //}
        }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
        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);
            }
        }
Esempio n. 20
0
        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);
            }
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        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);
            }
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
 public CouchService(string connectionString)
 {
     Connection = new CouchConnection(connectionString);
 }
Esempio n. 27
0
        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);
        }
Esempio n. 28
0
        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);
        }
Esempio n. 29
0
        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);
        }
Esempio n. 30
0
        public void Header_SetHeader_AppearsInCollection()
        {
            var ch = new CouchConnection("http://localhost/");
            ch.SetHeader("User-Agent", "user1");

            Assert.AreEqual(1, ch.Transport.HeaderCount());
        }