Esempio n. 1
0
        public void TestUpdateWeight_SaveAverageWeight(int oldWeight, int addedWeight, int resultWeight)
        {
            var verge = new Verge(
                Substitute.For <Node>(),
                Substitute.For <Node>(),
                Substitute.For <RelationType>(),
                oldWeight);

            var newVerge = verge.UpdateWeightFromSession(addedWeight, Substitute.For <SessionOfExperts>());

            newVerge.Weight.Should().Be(resultWeight);
        }
Esempio n. 2
0
        public void TestUpdateWeigth_AddSession()
        {
            var verge = new Verge(
                Substitute.For <Node>(),
                Substitute.For <Node>(),
                Substitute.For <RelationType>(),
                20);
            var session = Substitute.For <SessionOfExperts>();

            verge.UpdateWeightFromSession(20, session);

            verge.SessionWeightSlices.Should().BeEquivalentTo(
                new[] { new { Session = session, Verge = verge, Weight = 20 } },
                opt => opt.ExcludingMissingMembers());
        }
Esempio n. 3
0
        private void Seed()
        {
            using (var unitOfWork = UnitOfWorkFactory.Create())
            {
                _session1 = new SessionOfExperts("baseNotion");
                _session2 = new SessionOfExperts("otherNotion");

                var sessionRepo = GetRepository <SessionOfExperts>();
                sessionRepo.AddOrUpdate(_session1);
                sessionRepo.AddOrUpdate(_session2);

                _expert1 = new Expert("name1", _session1);
                _expert2 = new Expert("name2", _session2);
                _expert3 = new Expert("name3", _session1);
                var expertRepo = GetRepository <Expert>();
                expertRepo.AddOrUpdate(_expert1);
                expertRepo.AddOrUpdate(_expert2);
                expertRepo.AddOrUpdate(_expert3);

                var notionType = new NotionType("type");
                GetRepository <NotionType>().AddOrUpdate(notionType);

                var nodeRepo = GetRepository <Node>();
                var node1    = new Node("notion1", notionType);
                node1.AddSessionOfExperts(_session1);
                nodeRepo.AddOrUpdate(node1);

                var node2 = new Node("notion2", notionType);
                node2.AddSessionOfExperts(_session1);
                nodeRepo.AddOrUpdate(node2);

                var relationType = new RelationType("type");
                GetRepository <RelationType>().AddOrUpdate(relationType);

                var vergeRepo = GetRepository <Verge>();
                var verge1    = new Verge(node1, node2, relationType, 20);
                verge1.UpdateWeightFromSession(20, _session1);
                vergeRepo.AddOrUpdate(verge1);

                var verge2 = new Verge(node2, node1, relationType, 20);
                verge2.UpdateWeightFromSession(20, _session1);
                vergeRepo.AddOrUpdate(verge2);

                unitOfWork.Commit();
            }
        }
Esempio n. 4
0
        public void GetReadOnlyIngoingAndOutgoing()
        {
            Node  node1, node2;
            Verge verge1, verge2;

            using (var unitOfWork = UnitOfWorkFactory.Create()) {
                var notionType = new NotionType("type");
                GetRepository <NotionType>().AddOrUpdate(notionType);

                var nodeRepo = GetRepository <Node>();
                node1 = new Node("notion1", notionType);
                nodeRepo.AddOrUpdate(node1);

                node2 = new Node("notion2", notionType);
                nodeRepo.AddOrUpdate(node2);

                var relationType = new RelationType("type");
                GetRepository <RelationType>().AddOrUpdate(relationType);

                var vergeRepo = GetRepository <Verge>();
                verge1 = new Verge(node1, node2, relationType, 20);
                vergeRepo.AddOrUpdate(verge1);

                verge2 = new Verge(node2, node1, relationType, 20);
                vergeRepo.AddOrUpdate(verge2);

                unitOfWork.Commit();
            }

            using (UnitOfWorkFactory.Create()) {
                node1 = GetRepository <Node>().GetById(node1.Id);
                node2 = GetRepository <Node>().GetById(node2.Id);

                node1.IngoingVerges.Select(x => x.Id).Should().BeEquivalentTo(new[] { verge2.Id });
                node1.OutgoingVerges.Select(x => x.Id).Should().BeEquivalentTo(new[] { verge1.Id });
                node2.IngoingVerges.Select(x => x.Id).Should().BeEquivalentTo(new[] { verge1.Id });
                node2.OutgoingVerges.Select(x => x.Id).Should().BeEquivalentTo(new[] { verge2.Id });
            }
        }
Esempio n. 5
0
        public void TestAddSession()
        {
            using (var unitOfWork = UnitOfWorkFactory.Create()) {
                var notionType = new NotionType("type");
                GetRepository <NotionType>().AddOrUpdate(notionType);

                var node1 = new Node("notion1", notionType);
                GetRepository <Node>().AddOrUpdate(node1);

                var node2 = new Node("notion2", notionType);
                GetRepository <Node>().AddOrUpdate(node2);

                var relationType = new RelationType("type");
                GetRepository <RelationType>().AddOrUpdate(relationType);

                var verge = new Verge(node1, node2, relationType, 20);
                GetRepository <Verge>().AddOrUpdate(verge);

                unitOfWork.Commit();
            }

            using (var unitOfWork = UnitOfWorkFactory.Create()) {
                var session = new SessionOfExperts("baseNotion");
                GetRepository <SessionOfExperts>().AddOrUpdate(session);

                var verge = LinqProvider.Query <Verge>().Single();
                verge.UpdateWeightFromSession(20, session);

                unitOfWork.Commit();
            }

            using (UnitOfWorkFactory.Create()) {
                var verge = LinqProvider.Query <Verge>().Single();

                verge.SessionWeightSlices.Count.Should().Be(1);
            }
        }
Esempio n. 6
0
 public void Remove(Verge entity)
 {
     _repository.Remove(entity);
 }
Esempio n. 7
0
 public void AddOrUpdate(Verge entity)
 {
     _repository.AddOrUpdate(entity);
 }