public async Task SendFromServerToFilledClient() { InMemoryHelper.FillData(clCfg, clSession, false, alterIds: true); var scopes = new[] { Scope.Icd, Scope.Reference }; var types = scopes.SelectMany(x => x.GetTypes()); var entitiesCount = new Dictionary <Type, int>(); object al = null; foreach (var type in types) { entitiesCount[type] = sSession.QueryOver(type.Name, () => al).RowCount(); } await s.SendFrom(Side.Server, scopes); // после загрузки проверяем справочные сущности на совпадение var checker = new AfterSyncChecker(clSession); checker.CheckReferenceEntitiesAfterDownload(s.AddedOnServerIdsPerType); foreach (var type in types) { Assert.AreEqual(entitiesCount[type], clSession.QueryOver(type.Name, () => al).RowCount()); } }
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()); }