Ejemplo n.º 1
0
        public async Task LoadSelectedVocWithNewSpec()
        {
            // load voc from server
            var voc = sSession.Get <Vocabulary>(IntToGuid <Vocabulary>(2));
            await s.OnlySelectedVocs(sSession, voc.ToEnumerable())
            .SendFrom(Side.Server, Scope.Voc);

            // добавлен словарь, шаблоны
            Assert.IsTrue(clSession.Query <Vocabulary>().Any(x => x.Id == voc.Id));
            var clientWtIds = clSession.Query <WordTemplate>().Select(x => x.Id).ToList();

            Assert.IsTrue(voc.WordTemplates.Select(x => x.Id).IsSubsetOf(clientWtIds));

            var vocOnCLient = clSession.Query <Vocabulary>()
                              .Where(v => v.Id == voc.Id)
                              .ToList();
            var l = new VocLoader(clSession);

            l.LoadOrUpdateVocs(vocOnCLient);

            // по каждому шаблону есть слово
            var clientWordTitles = GetWordTitles();

            Assert.IsTrue(voc.WordTemplates.Select(x => x.Title).All(x => clientWordTitles.Contains(x)));

            // загружена специальность выбранного словаря
            var clientSpecIds = clSession.Query <Speciality>().Select(x => x.Id).ToList();

            Assert.IsTrue(voc.Specialities.Select(x => x.Id).All(x => clientSpecIds.Contains(x)));
        }
Ejemplo n.º 2
0
        public void RemoveWordSaveVoc()
        {
            Load <Vocabulary>();

            var l = new VocLoader(session);

            l.LoadOrUpdateVocs(voc[1]);
            var w = voc[1].Words.First();

            voc[1].RemoveWord(w);
            w.OnDelete();
            session.DoDelete(w); // или после
            session.DoSave(voc[1]);

            Assert.IsFalse(GetWordTitles().Any(x => x == w.Title));
        }
Ejemplo n.º 3
0
        public async Task LoadSelectedVocWithOldSpec()
        {
            var voc = sSession.Get <Vocabulary>(IntToGuid <Vocabulary>(2));
            // на клиенте уже есть специальности словаря
            var specTitles = voc.Specialities.Select(x => x.Title);

            specTitles.ForAll(t =>
            {
                clSession.DoSave(new Speciality(t));
            });

            // load voc from server
            await s.OnlySelectedVocs(sSession, voc.ToEnumerable())
            .SendFrom(Side.Server, Scope.Voc);

            // после загрузки проверяем справочные сущности на совпадение
            var checker = new AfterSyncChecker(clSession);

            checker.CheckReferenceEntitiesAfterDownload(s.AddedOnServerIdsPerType);

            // добавлен словарь, шаблоны
            Assert.IsTrue(clSession.Query <Vocabulary>().Any(x => x.Id == voc.Id));
            var clientWtIds = clSession.Query <WordTemplate>().Select(x => x.Id).ToList();

            Assert.IsTrue(voc.WordTemplates.Select(x => x.Id).IsSubsetOf(clientWtIds));

            var selectedSynced = clSession.Query <Vocabulary>()
                                 .Where(v => v.Id == voc.Id)
                                 .ToList();
            var l = new VocLoader(clSession);

            l.LoadOrUpdateVocs(selectedSynced);

            // по каждому шаблону есть слово
            var clientWordTitles = GetWordTitles();

            Assert.IsTrue(voc.WordTemplates.Select(x => x.Title).All(x => clientWordTitles.Contains(x)));

            // специальность выбранного словаря уже была с другим Ид, остается одна
            var clientSpecIds = clSession.Query <Speciality>().Select(x => x.Id).ToList();

            Assert.IsTrue(voc.Specialities.Select(x => x.Id).All(x => clientSpecIds.Contains(x)));
            Assert.AreEqual(voc.Specialities.Count(), clientSpecIds.Count());
        }
Ejemplo n.º 4
0
        public void LoadVocsWithSameWt()
        {
            l.LoadOrUpdateVocs(new[] { voc[1], voc[2] });

            // только одно слово на каждый шаблон
            var t = GetWordTitles();

            Assert.AreEqual(t.Distinct().Count(), t.Count);
        }