Esempio n. 1
0
        public void CanUseSpacesInCounterAndCompareExchangeNames()
        {
            using (var store = GetDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    var company = new Company
                    {
                        Name = "HR"
                    };

                    session.Store(company, "companies/1");

                    session.CountersFor(company).Increment("Total Likes", 11);

                    session.SaveChanges();
                }

                using (var session = store.OpenSession(new SessionOptions
                {
                    TransactionMode = TransactionMode.ClusterWide
                }))
                {
                    session.Advanced.ClusterTransaction.CreateCompareExchangeValue("Total Uses", 55);

                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    Assert.Equal(11, session.CountersFor("companies/1").Get("Total Likes"));
                }

                using (var session = store.OpenSession(new SessionOptions
                {
                    TransactionMode = TransactionMode.ClusterWide
                }))
                {
                    Assert.Equal(55, session.Advanced.ClusterTransaction.GetCompareExchangeValue <int>("Total Uses").Value);
                }

                using (var session = store.OpenSession())
                {
                    var query = session.Query <Company>()
                                .Select(x => new
                    {
                        TotalUses = RavenQuery.CmpXchg <int>("Total Uses")
                    });

                    var queryAsString = query.ToString();
                    Assert.Contains("cmpxchg(\"Total Uses\")", queryAsString);

                    var result = query.First();
                    Assert.Equal(55, result.TotalUses);
                }

                using (var session = store.OpenSession())
                {
                    var query = session.Query <Company>()
                                .Select(x => new
                    {
                        Name       = x.Name + " " + x.Name,
                        TotalLikes = RavenQuery.Counter(x, "Total Likes")
                    });

                    var queryAsString = query.ToString();
                    Assert.Contains("counter(x, \"Total Likes\")", queryAsString);

                    var result = query.First();
                    Assert.Equal(11, result.TotalLikes);
                }

                using (var session = store.OpenSession())
                {
                    var query = session.Query <Company>()
                                .Select(x => new
                    {
                        TotalLikes = RavenQuery.Counter(x, "Total Likes")
                    });

                    var queryAsString = query.ToString();
                    Assert.Contains("counter(x, 'Total Likes')", queryAsString);

                    var result = query.First();
                    Assert.Equal(11, result.TotalLikes);
                }
            }
        }