public void ChangeStockDuplicateAsxCodeInThePast()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("ABC", "Different stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);
            stock2.DeList(new Date(1999, 01, 01));

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            stockCache.Add(stock2);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Update(stock)).Verifiable();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeStock(id, new Date(2000, 01, 01), "ABC", "ABC Pty Ltd", AssetCategory.AustralianFixedInterest);

            result.Should().HaveOkStatus();

            mockRepository.Verify();
        }
        public void ChangeStockDuplicateAsxCode()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stock2 = new Stock(Guid.NewGuid());

            stock2.List("ABC", "Different stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            stockCache.Add(stock2);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeStock(id, new Date(2000, 01, 01), "ABC", "ABC Pty Ltd", AssetCategory.AustralianFixedInterest);

            result.Should().HaveErrorStatus().WithError("A stock already exists with code ABC on 1/1/2000");

            mockRepository.Verify();
        }
Ejemplo n.º 3
0
        public void Modify()
        {
            const int COUNT = 1000000;

            var cache = new EntityCache {
                BucketCount = COUNT / 7
            };

            Assert.AreEqual(0, cache.Count);

            for (int i = 0; i < COUNT; i++)
            {
                cache.Add(new EntityBase {
                    ID = ObjectId.GenerateNewId()
                });
            }

            Assert.AreEqual(COUNT, cache.Count);

            var entity1 = new EntityBase {
                ID = new ObjectId("5f32355b2fb32d25b863350f")
            };

            cache.Add(entity1);
            Assert.AreEqual(COUNT + 1, cache.Count);
            Assert.AreEqual(entity1, cache.Remove(entity1.ID));
            Assert.AreEqual(COUNT, cache.Count);

            Assert.AreEqual(null, cache.Replace(entity1));// 之前不存在,不能替换
            Assert.AreEqual(null, cache.AddOrReplace(entity1));
            Assert.AreEqual(entity1, cache.AddOrReplace(entity1));
            Assert.AreEqual(entity1, cache.Replace(entity1));
            Assert.AreEqual(COUNT + 1, cache.Count);
            Assert.AreEqual(entity1, cache.Get(entity1.ID));
        }
Ejemplo n.º 4
0
        public async Task EntityCache_Multiple()
        {
            using (EntityCache entityCache = new EntityCache())
            {
                Uri uri = new Uri("http://test/doc");
                entityCache.Add(TestJson.BasicGraph, uri);

                Uri uri2 = new Uri("http://test/doc2");
                entityCache.Add(TestJson.BasicGraph2, uri2);

                Assert.True(entityCache.HasPageOfEntity(uri));
                Assert.True(entityCache.HasPageOfEntity(new Uri("http://test/doc#c")));
                Assert.True(entityCache.HasPageOfEntity(new Uri("http://test/doc#nonexist")));
                Assert.False(entityCache.HasPageOfEntity(new Uri("http://test/docnonexist")));

                Assert.True(entityCache.HasPageOfEntity(uri2));
                Assert.True(entityCache.HasPageOfEntity(new Uri("http://test/doc2#c")));
                Assert.True(entityCache.HasPageOfEntity(new Uri("http://test/doc2#nonexist")));
                Assert.False(entityCache.HasPageOfEntity(new Uri("http://test/doc2nonexist")));

                Assert.False(entityCache.HasPageOfEntity(new Uri("http://test/docA")));

                var root = await entityCache.GetEntity(uri);

                Assert.Equal("test", root["name"]);
            }
        }
Ejemplo n.º 5
0
        public void TestAdd()
        {
            var person = new Person(14, "Mark");

            _entityCache.Add(person);

            Assert.AreEqual(person, _entityCache.Get(14));
            _entityCache.Remove(14);
        }
Ejemplo n.º 6
0
        public void GetEntityNotInCache()
        {
            var cache = new EntityCache <TestEntity>();

            cache.Add(new TestEntity(Guid.NewGuid()));
            cache.Add(new TestEntity(Guid.NewGuid()));

            var result = cache.Get(Guid.NewGuid());

            result.Should().BeNull();
        }
Ejemplo n.º 7
0
        public void GetEntityInCache()
        {
            var cache = new EntityCache <TestEntity>();

            var entity = new TestEntity(Guid.NewGuid());

            cache.Add(new TestEntity(Guid.NewGuid()));
            cache.Add(entity);

            var result = cache.Get(entity.Id);

            result.Should().Be(entity);
        }
Ejemplo n.º 8
0
        public void Add()
        {
            var cache = new EntityCache <TestEntity>();

            var entity = new TestEntity(Guid.NewGuid());

            cache.Add(entity);

            var entity2 = new TestEntity(Guid.NewGuid());

            cache.Add(entity2);

            cache.All().Should().BeEquivalentTo(new[] { entity, entity2 });
        }
Ejemplo n.º 9
0
        public void AddEntityWithSameIdInCache()
        {
            var cache = new EntityCache <TestEntity>();

            var id     = Guid.NewGuid();
            var entity = new TestEntity(id);

            cache.Add(entity);

            var entity2 = new TestEntity(id);

            cache.Add(entity2);

            cache.All().Should().HaveCount(1);
        }
        public void ChangeDividendRulesTaxRateGreaterThan100Percent()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id = Guid.NewGuid();

            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 1.30m, RoundingRule.Round, true, DrpMethod.Round);

            result.Should().HaveErrorStatus().WithError("Company tax rate must be between 0 and 1");

            mockRepository.Verify();
        }
        public void ChangeStockWithLaterChangeExisting()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);
            stock.ChangeProperties(new Date(2002, 01, 01), "XYZ", "New Name", AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeStock(id, new Date(2000, 01, 01), "ABC", "ABC Pty Ltd", AssetCategory.AustralianFixedInterest);

            result.Should().HaveErrorStatus().WithError("A later change has been made on 1/1/2002");

            mockRepository.Verify();
        }
        public void ChangeStock()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);


            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Update(stock)).Verifiable();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeStock(id, new Date(2000, 01, 01), "ABC", "ABC Pty Ltd", AssetCategory.AustralianProperty);

            using (new AssertionScope())
            {
                result.Should().HaveOkStatus();

                stock.Properties[new Date(2000, 01, 01)].Should().BeEquivalentTo(new { AsxCode = "ABC", Name = "ABC Pty Ltd", Category = AssetCategory.AustralianProperty });
            }

            mockRepository.Verify();
        }
        public void ChangeStockDelisted()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);
            stock.DeList(new Date(1999, 01, 01));

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeStock(id, new Date(2000, 01, 01), "ABC", "ABC Pty Ltd", AssetCategory.AustralianFixedInterest);

            result.Should().HaveErrorStatus().WithError("Stock is delisted");

            mockRepository.Verify();
        }
        public void ChangeDividendRules()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id = Guid.NewGuid();

            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Update(stock)).Verifiable();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 0.50m, RoundingRule.Round, true, DrpMethod.Round);

            using (new AssertionScope())
            {
                result.Should().HaveOkStatus();
                var dividendRules = stock.DividendRules[new Date(2000, 01, 01)];
                dividendRules.Should().BeEquivalentTo(new { CompanyTaxRate = 0.50m, DividendRoundingRule = RoundingRule.Round, DrpActive = true, DrpMethod = DrpMethod.Round });
            }

            mockRepository.Verify();
        }
Ejemplo n.º 15
0
        public async Task EntityCache_CleanUp_InUse()
        {
            using (EntityCache entityCache = new EntityCache(TimeSpan.FromSeconds(1)))
            {
                Uri uri = new Uri("http://test/doc");
                entityCache.Add(TestJson.BasicGraph, uri);

                Stopwatch timer = new Stopwatch();
                timer.Start();

                while (timer.Elapsed.TotalSeconds < 5)
                {
                    // the cache should not clear while we are using it
                    var token = await entityCache.GetEntity(new Uri("http://test/doc"));

                    Assert.NotNull(token);
                }

                Thread.Sleep(2000);

                var token2 = await entityCache.GetEntity(new Uri("http://test/doc"));

                Assert.Null(token2);
            }
        }
Ejemplo n.º 16
0
        public void ClearEmptyCache()
        {
            var cache = new EntityCache <TestEntity>();

            var entity = new TestEntity(Guid.NewGuid());

            cache.Add(entity);

            var entity2 = new TestEntity(Guid.NewGuid());

            cache.Add(entity2);

            cache.Clear();

            cache.All().Should().BeEmpty();
        }
        public void ListStockDuplicateAsxCodeInThePast()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id = Guid.NewGuid();

            var stock = new Stock(Guid.NewGuid());

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);
            stock.DeList(new Date(1999, 06, 30));

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Get(id)).Returns(default(Stock));
            stockRepository.Setup(x => x.Add(It.IsAny <Stock>())).Verifiable();
            var stockPriceHistoryCache      = new EntityCache <StockPriceHistory>();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            stockPriceHistoryRepository.Setup(x => x.Add(It.IsAny <StockPriceHistory>())).Verifiable();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache, stockPriceHistoryRepository.Object);

            var result = service.ListStock(id, "XYZ", "XYZ Pty Ltd", new Date(2000, 01, 01), true, AssetCategory.AustralianFixedInterest);

            result.Should().HaveOkStatus();

            mockRepository.Verify();
        }
        public void ChangeDividendRulesStockNotActive()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id = Guid.NewGuid();

            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);
            stock.DeList(new Date(1999, 06, 30));

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ChangeDividendRules(id, new Date(2000, 01, 01), 0.30m, RoundingRule.Round, true, DrpMethod.Round);

            result.Should().HaveErrorStatus().WithError("Stock is not active at 1/1/2000");

            mockRepository.Verify();
        }
        public void UpdateClosingPricesNegativePrice()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var prices = new StockPrice[]
            {
                new StockPrice(new Date(2000, 01, 01), 0.10m),
                new StockPrice(new Date(2000, 01, 02), -0.20m),
                new StockPrice(new Date(2000, 01, 03), 0.30m)
            };
            var result = service.UpdateClosingPrices(id, prices);

            result.Should().HaveErrorStatus("Closing price on 2/01/2000 is negative");

            mockRepository.Verify();
        }
        public void ListStockDuplicateAsxCode()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id = Guid.NewGuid();

            var stock = new Stock(Guid.NewGuid());

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Get(id)).Returns(default(Stock));
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.ListStock(id, "XYZ", "XYZ Pty Ltd", new Date(2000, 01, 01), true, AssetCategory.AustralianFixedInterest);

            result.Should().HaveErrorStatus().WithError("A stock already exists with the code XYZ on 1/1/2000");

            mockRepository.Verify();
        }
        public void UpdateCurrentPrice()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockPriceHistory = new StockPriceHistory(id);

            stock.SetPriceHistory(stockPriceHistory);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery             = new StockQuery(stockCache);
            var stockRepository        = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache = new EntityCache <StockPriceHistory>();

            stockPriceHistoryCache.Add(stockPriceHistory);
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache, stockPriceHistoryRepository.Object);

            var result = service.UpdateCurrentPrice(id, 10.00m);

            using (new AssertionScope())
            {
                result.Should().HaveOkStatus();
                stock.GetPrice(Date.Today).Should().Be(10.00m);
            }

            mockRepository.Verify();
        }
        public void UpdateCurrentPriceNegativePrice()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);

            var id    = Guid.NewGuid();
            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery                  = new StockQuery(stockCache);
            var stockRepository             = mockRepository.Create <IRepository <Stock> >();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.UpdateCurrentPrice(id, -10.00m);

            result.Should().HaveErrorStatus("Price is negative");

            mockRepository.Verify();
        }
        public void DeListStock()
        {
            var mockRepository = new MockRepository(MockBehavior.Strict);
            var id             = Guid.NewGuid();

            var stock = new Stock(id);

            stock.List("XYZ", "Existing Stock", new Date(1990, 01, 01), true, AssetCategory.AustralianFixedInterest);

            var stockCache = new EntityCache <Stock>();

            stockCache.Add(stock);
            var stockQuery      = new StockQuery(stockCache);
            var stockRepository = mockRepository.Create <IRepository <Stock> >();

            stockRepository.Setup(x => x.Update(stock)).Verifiable();
            var stockPriceHistoryCache      = mockRepository.Create <IEntityCache <StockPriceHistory> >();
            var stockPriceHistoryRepository = mockRepository.Create <IRepository <StockPriceHistory> >();

            var service = new StockService(stockQuery, stockCache, stockRepository.Object, stockPriceHistoryCache.Object, stockPriceHistoryRepository.Object);

            var result = service.DelistStock(id, new Date(2000, 01, 01));

            using (new AssertionScope())
            {
                result.Should().HaveOkStatus();

                stock.EffectivePeriod.ToDate.Should().Be(new Date(2000, 01, 01));
            }

            mockRepository.Verify();
        }
Ejemplo n.º 24
0
        ///// <summary>格式化参数名</summary>
        ///// <param name="name">名称</param>
        ///// <returns></returns>
        //public virtual String FormatParameterName(String name) => Dal.Db.FormatParameterName(name);
        #endregion

        #region 实体操作
        /// <summary>把该对象持久化到数据库,添加/更新实体缓存和单对象缓存,增加总计数</summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        public virtual Int32 Insert(IEntity entity)
        {
            var rs = Factory.Persistence.Insert(this, entity);

            var e = entity as TEntity;

            // 加入实体缓存
            _cache?.Add(e);

            // 增加计数
            if (_Count >= 0)
            {
                Interlocked.Increment(ref _Count);
            }

            return(rs);
        }
Ejemplo n.º 25
0
 internal static FastProperty[] CachePropsManager(this Type type)
 {
     if (!EntityCache.ContainsKey(type.FullName))
     {
         EntityCache.Add(type.FullName, EnumerableProp(type).ToArray());
     }
     return(EntityCache[type.FullName]);
 }
Ejemplo n.º 26
0
        public void AddEmptyCache()
        {
            var cache = new EntityCache <TestEntity>();

            var entity = new TestEntity(Guid.NewGuid());

            cache.Add(entity);

            cache.All().Should().HaveCount(1);
        }
Ejemplo n.º 27
0
        public void AllSingleItemInCache()
        {
            var cache = new EntityCache <TestEntity>();

            var entity = new TestEntity(Guid.NewGuid());

            cache.Add(entity);

            cache.All().Should().BeEquivalentTo(new[] { entity });
        }
Ejemplo n.º 28
0
        public void TestAddRemove()
        {
            var cache = new EntityCache <Role>
            {
                Expire = 2
            };

            var list = cache.Entities;

            var role = new Role {
                Name = "test"
            };

            // 添加实体对象
            cache.Add(role);
            var list2 = cache.Entities;

            Assert.NotEqual(list, list2);
            Assert.Equal(list.Count + 1, list2.Count);

            // 删除实体对象,来自内部
            cache.Remove(role);
            var list3 = cache.Entities;

            Assert.True(list != list3);
            Assert.True(list2 != list3);
            Assert.Equal(list.Count, list3.Count);

            // 删除实体对象,来自外部
            cache.Add(role);
            var role2 = new Role {
                Name = "test"
            };

            cache.Remove(role2);
            var list4 = cache.Entities;

            Assert.True(list != list4);
            Assert.True(list2 != list4);
            Assert.Equal(list.Count, list4.Count);
        }
Ejemplo n.º 29
0
        public async Task EntityCache_FetchNeeded_SamePage()
        {
            using (EntityCache entityCache = new EntityCache())
            {
                Uri uri = new Uri("http://test/doc");
                entityCache.Add(TestJson.BasicGraph, uri);
                entityCache.WaitForTasks();

                bool?b = await entityCache.FetchNeeded(new Uri("http://test/doc#c"), new Uri[] { new Uri("http://test#prop") });

                Assert.Equal(false, b);
            }
        }
Ejemplo n.º 30
0
        public bool TestUpdate()
        {
            bool res;

            try
            {
                m_Cache.Add(m_Dummy);
                var original = m_Cache.Get(m_Dummy.Id);
                var before   = original.AvarageGrades;
                original.AvarageGrades = before + 1;
                m_Cache.Update(original);
                var after = m_Cache.Get(m_Dummy.Id).AvarageGrades;

                res = before != after;
            }
            catch
            {
                res = false;
            }

            return(res);
        }