public NewKeeper(CasEnvironment casEnvironment, IAuditRepository auditRepository) { _casEnvironment = casEnvironment; _auditRepository = auditRepository; _filesSmartCore = new FilesSmartCore(_casEnvironment); _apiProvider = casEnvironment.ApiProvider; }
public void SmartCoreFileTest_InsertLinksForAnotherFiles() { var dbManager = GetEnviroment(); var fileSmartCore = new FilesSmartCore(dbManager); //Константа =999 для того что бы в тестах было проще искать в бд линки для удаления данных перед вставкой const int linkTypeId = 999; const int directiveId1 = 7; const int directiveId2 = 8; int directiveTypeId1 = SmartCoreType.Directive.ItemId; //Создаем линк с новым файлом var link1 = CreateItemFileLink(directiveId1, directiveTypeId1, linkTypeId); var fileId1 = fileSmartCore.SaveAttachedFile(link1); //Создаем линк с новым файлом(таким же как и в 1 линке) и новым parentId var link2 = CreateItemFileLink(directiveId2, directiveTypeId1, linkTypeId); UpdateFileLink(link2); //Присваиваем другой файл для линка var fileId2 = fileSmartCore.SaveAttachedFile(link2); Assert.AreNotEqual(fileId1, fileId2, "Id файла не должны быть одинаковыми"); var dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId })); Assert.AreEqual(2, dsLinks.Tables[0].Rows.Count, "Должно быть 2 линка"); var getFirstLink = ItemFileLinksQueries.Fill(dsLinks.Tables[0].Rows[0]); var getSecondLink = ItemFileLinksQueries.Fill(dsLinks.Tables[0].Rows[1]); Assert.AreNotEqual(getFirstLink.File.ItemId, getSecondLink.File.ItemId, "Id на файлы должны отличаться"); Assert.AreEqual(fileId1, getFirstLink.File.ItemId, $"File Id первого линка должен быть равен {fileId1}"); Assert.AreEqual(fileId2, getSecondLink.File.ItemId, $"File Id второго линка должен быть равен {fileId2}"); Assert.AreEqual(linkTypeId, getFirstLink.LinkType, $"LinkType первого линка должен быть равен {linkTypeId}"); Assert.AreEqual(linkTypeId, getSecondLink.LinkType, $"LinkType второго линка должен быть равен {linkTypeId}"); Assert.AreEqual(directiveTypeId1, getFirstLink.ParentTypeId, $"ParentTypeId первого линка должен быть равен {directiveTypeId1}"); Assert.AreEqual(directiveTypeId1, getSecondLink.ParentTypeId, $"ParentTypeId второго линка должен быть равен {directiveTypeId1}"); Assert.AreEqual(directiveId1, getFirstLink.ParentId, $"ParentId первого линка должен быть равен {directiveId1}"); Assert.AreEqual(directiveId2, getSecondLink.ParentId, $"ParentId второго линка должен быть равен {directiveId2}"); var dsFiles1 = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link1.File.FileName, Convert.ToInt32(link1.File.FileSize))); var dsFiles2 = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link2.File.FileName, Convert.ToInt32(link2.File.FileSize))); Assert.AreEqual(1, dsFiles1.Tables[0].Rows.Count, $"Должен вернуть 1 файл {link1.File.FileName}"); Assert.AreEqual(1, dsFiles2.Tables[0].Rows.Count, $"Должен вернуть 1 файл {link2.File.FileName}"); fileSmartCore.DeleteAttachedFile(link1); fileSmartCore.DeleteAttachedFile(link2); dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId })); Assert.AreEqual(0, dsLinks.Tables[0].Rows.Count, "Должно быть 0 линков"); }
public void SmartCoreFileTest_InsertLinksAndRemoveFileLinkForLastFile() { var dbManager = GetEnviroment(); var fileSmartCore = new FilesSmartCore(dbManager); //Константа =999 для того что бы в тестах было проще искать в бд линки для удаления данных перед вставкой const int linkTypeId = 999; const int directiveId1 = 5; const int directiveId2 = 6; int directiveTypeId1 = SmartCoreType.Directive.ItemId; //Создаем линк с новым файлом var link1 = CreateItemFileLink(directiveId1, directiveTypeId1, linkTypeId); var fileId1 = fileSmartCore.SaveAttachedFile(link1); //Создаем линк с новым файлом(таким же как и в 1 линке) и новым parentId var link2 = CreateItemFileLink(directiveId2, directiveTypeId1, linkTypeId); var fileId2 = fileSmartCore.SaveAttachedFile(link2); Assert.AreEqual(fileId1, fileId2, "Id файла должны быть одинаковыми"); var dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId })); Assert.AreEqual(2, dsLinks.Tables[0].Rows.Count, "Должно быть 2 линка на 1 файл"); //Удаляем 2й линк fileSmartCore.DeleteAttachedFile(link2); var dsFiles = dbManager.Execute(AttachedFileQueries.GetSelectQueryByNameAndSize(link1.File.FileName, Convert.ToInt32(link1.File.FileSize))); Assert.AreEqual(1, dsFiles.Tables[0].Rows.Count, "Файла должно быть"); dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId })); Assert.AreEqual(1, dsLinks.Tables[0].Rows.Count, "Должно быть 1 линк"); fileSmartCore.DeleteAttachedFile(link1); dsLinks = dbManager.Execute(ItemFileLinksQueries.GetSelectQuery(new[] { link1.ItemId, link2.ItemId })); Assert.AreEqual(0, dsLinks.Tables[0].Rows.Count, "Должно быть 0 линков"); }
/// <summary> /// Сохраняет объекты в базе данных /// </summary> /// <param name="casEnvironment"></param> public Keeper(CasEnvironment casEnvironment, IAuditRepository auditRepository) { _casEnvironment = casEnvironment; _auditRepository = auditRepository; _filesSmartCore = new FilesSmartCore(_casEnvironment); }