Ejemplo n.º 1
0
        public ObjectIntegrationFixture()
        {
            Client             = new HttpClient();
            Client.BaseAddress = new Uri("http://localhost:9090/api/1.0/");

            var mock = new Mock <IHttpClientFactory>();

            mock.CallBase = true;
            mock.Setup(x => x.CreateClient($"unittests-{Common.OBJECT_SERVICE_NAME}")).Returns(Client);

            ClientFactory = mock.Object;
            MongoClient   = new MongoClient("mongodb://localhost:27017");

            MongoBookLogger = new Mock <ILogger <MongoService> >().Object;
            HttpBookLogger  = new Mock <ILogger <HttpObjectService> >().Object;

            MongoBookService = new MongoService(MongoClient, MongoBookLogger);
            HttpBookService  = new HttpObjectService("unittests", ClientFactory, HttpBookLogger);

            Services.Add(MongoBookService);
            Services.Add(HttpBookService);

            foreach (var service in Services)
            {
                service.DeleteCollectionAsync(DB_NAME, GetCollectionName(service));
            }
        }
        public void Aggregate()
        {
            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <string> result = repo.AggregateAsync("bookstore", "customer", "[{ $match: { title: /^(the|a)/i } }]").Result;
            var array = JArray.Parse(result.Value);

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal(3, array.Count);
        }
        public void Count()
        {
            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <long> result = repo.CountAsync("bookstore", "customer", string.Empty).Result;
            long count = result.Value;

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal(2, count);
            Assert.Equal("Object", result.ServiceName);
        }
        public void Delete()
        {
            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <int> result = repo.DeleteAsync("bookstore", "customer", "3").Result;
            int deleteResult           = result.Value;

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal(1, deleteResult);
            Assert.True(result.IsSuccess);
            Assert.Equal("Object", result.ServiceName);
        }
        public void Get()
        {
            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <string> result = repo.GetAsync("bookstore", "customer", "1").Result;
            string   customerResult       = result.Value;
            Customer customer             = Newtonsoft.Json.JsonConvert.DeserializeObject <Customer>(customerResult);

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal("John", customer.FirstName);
            Assert.Equal("Smith", customer.LastName);
            Assert.Equal(32, customer.Age);
            Assert.Equal("Object", result.ServiceName);
        }
        public void Replace()
        {
            var customer = "{ 'name': 'Mary', 'lastName': 'Jane', 'age': 39 }";

            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <string> result = repo.ReplaceAsync("bookstore", "customer", "2", customer).Result;

            string   newCustomerResult = result.Value;
            Customer newCustomer       = Newtonsoft.Json.JsonConvert.DeserializeObject <Customer>(newCustomerResult);

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal("Mary", newCustomer.FirstName);
            Assert.Equal("Jane", newCustomer.LastName);
            Assert.Equal(39, newCustomer.Age);
            Assert.Equal("Object", result.ServiceName);
        }
        public void Multi_Insert()
        {
            var customers = new List <string>(2)
            {
                "{ 'name': 'Mary', 'lastName': 'Jane', 'age': 39 }",
                "{ 'name': 'John', 'lastName': 'Smith', 'age': 48 }"
            };

            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            ServiceResult <IEnumerable <string> > result = repo.InsertManyAsync("bookstore", "customer", customers).Result;
            List <string> ids = (List <string>)result.Value;

            Assert.Equal((int)HttpStatusCode.Created, result.Status);
            Assert.Equal("5c1fbe4dbe41760001060b25", ids[0]);
            Assert.Equal("5c1fbe4dbe41760001060b26", ids[1]);
        }
        public void Find()
        {
            var repo = new HttpObjectService("unittests", _objectFixture.ClientFactory, _objectFixture.Logger);

            var findCriteria = new FindCriteria()
            {
                Start         = 0,
                Limit         = -1,
                SortFieldName = string.Empty,
                SortDirection = System.ComponentModel.ListSortDirection.Descending
            };

            var findTask = repo.FindAsync("bookstore", "customer", findExpression: string.Empty, findCriteria: findCriteria);
            ServiceResult <SearchResults> result = findTask.Result;
            SearchResults searchResults          = result.Value;

            Assert.Equal((int)HttpStatusCode.OK, result.Status);
            Assert.Equal(2, searchResults.Items.Count);
            Assert.Equal("Object", result.ServiceName);
        }