public void Test_Load_01() { _logger.Trace(">>> FileMappingInfoモデルの読み込みテストを開始"); using (InitializeFact()) { var @dbc = (AppDbContext)container.GetInstance <IAppDbContext>(); var repo = new FileMappingInfoRepository(dbc); var entity = repo.Load(1L); Assert.Equal(entity.AclHash, "ABC1"); } }
// アクティビティが値を返す場合は、CodeActivity<TResult> から派生して、 // Execute メソッドから値を返します。 protected override FileMappingInfo Execute(CodeActivityContext context) { IWorkflowContext workflowContext = context.GetExtension <IWorkflowContext>(); var repo = new FileMappingInfoRepository(workflowContext.DbContext); string keyType = this.KeyType.Get(context); string keyValue = this.KeyValue.Get(context); FileMappingInfo returnEntity = null; switch (keyType) { case "Id": returnEntity = repo.Load(long.Parse(keyValue)); if (returnEntity == null) { LOG.WarnFormat("FileMappingInfoの読み込みに失敗しました。 Id={0}", long.Parse(keyValue)); } break; case "AclHash": returnEntity = repo.LoadByAclHash(keyValue); if (returnEntity == null) { LOG.WarnFormat("FileMappingInfoの読み込みに失敗しました。 AclHash={0}", keyValue); } break; case "MappingFilePath": returnEntity = repo.LoadByPath(keyValue); if (returnEntity == null) { LOG.WarnFormat("FileMappingInfoの読み込みに失敗しました。 MappingFilePath={0}", keyValue); } break; default: throw new ApplicationException("キータイプの指定が不正です"); } var resultKey = this.ParameterResultKey.Get(context); if (resultKey != null) { ParameterStack pstack = context.GetValue <ParameterStack>(this.Parameter); pstack.SetValue(resultKey, returnEntity); } return(returnEntity); }
public void Run_UpdateVirtualSpaceAppFlowTest_RenameFileName() { LOG.Debug("execute method run"); UpdateVirtualSpaceAppFlowTestSupport.RemoveVirtualFile(1L); UpdateVirtualSpaceAppFlowTestSupport.RemovePhysicalFile(1L); UpdateVirtualSpaceAppFlowTestSupport.CopyPhysicalSpace_Kinkaku(1L); var aclfile = UpdateVirtualSpaceAppFlowTestSupport.CopyVirtualSpace_Kinkaku_aclgene(1L); aclfile.MoveTo(Path.Combine(aclfile.DirectoryName, "Kinkaku2.jpg.aclgene")); // 新しいACLファイル名前にリネームする aclfile = new FileInfo(Path.Combine(aclfile.DirectoryName, "Kinkaku2.jpg.aclgene")); // ... using (var dbc = new AppDbContext()) { var workspace = WorkspaceRepository.Load(dbc, 1L); var workflow = new WorkflowInvoker(new UpdateVirtualSpaceAppFlow()); workflow.Extensions.Add(new WorkflowExtention(dbc)); var pstack = new ParameterStack(); pstack.SetValue("Event", Mogami.Core.Constructions.UpdateVirtualStatusEventType.RENAME); pstack.SetValue(ActivityParameterStack.WORKSPACE_FILEPATH, "Kinkaku2.jpg.aclgene"); // リネーム後のファイル名 pstack.SetValue(ActivityParameterStack.WORKSPACE, workspace); var results = workflow.Invoke(new Dictionary <string, object> { { "ParameterStack", pstack } }); dbc.SaveChanges(); } using (var dbc = new AppDbContext()) { var filemapinginfoRepository = new FileMappingInfoRepository(dbc); var entity = filemapinginfoRepository.Load(1L); var workspace = WorkspaceRepository.Load(dbc, 1L); // エンティティの値が変わっていることの確認 Assert.AreEqual("Kinkaku2.jpg", entity.MappingFilePath); // 物理ディレクトリ空間での、ファイル名称が変更していることの確認 var physicalFileInfo = new FileInfo(Path.Combine(workspace.PhysicalPath, "Kinkaku2.jpg")); Assert.IsTrue(physicalFileInfo.Exists); } }
public void Run_UpdateVirtualSpaceAppFlowTest_DeleteFileName() { UpdateVirtualSpaceAppFlowTestSupport.RemoveVirtualFile(1L); UpdateVirtualSpaceAppFlowTestSupport.RemovePhysicalFile(1L); UpdateVirtualSpaceAppFlowTestSupport.CopyPhysicalSpace_Kinkaku(1L); var aclfile = UpdateVirtualSpaceAppFlowTestSupport.CopyVirtualSpace_Kinkaku_aclgene(1L); aclfile.Delete(); using (var dbc = new AppDbContext()) { var workspace = WorkspaceRepository.Load(dbc, 1L); var workflow = new WorkflowInvoker(new UpdateVirtualSpaceAppFlow()); workflow.Extensions.Add(new WorkflowExtention(dbc)); var pstack = new ParameterStack(); pstack.SetValue("Event", Mogami.Core.Constructions.UpdateVirtualStatusEventType.DELETE); pstack.SetValue(ActivityParameterStack.WORKSPACE_FILEPATH, "Kinkaku.jpg.aclgene"); // 削除したファイル pstack.SetValue(ActivityParameterStack.WORKSPACE, workspace); pstack.SetValue("WF_DeleteAclHash", "Test"); var results = workflow.Invoke(new Dictionary <string, object> { { "ParameterStack", pstack } }); dbc.SaveChanges(); } using (var dbc = new AppDbContext()) { var workspace = WorkspaceRepository.Load(dbc, 1L); // 物理ファイルが削除されていることを確認する var physicalFileInfo = new FileInfo(Path.Combine(workspace.PhysicalPath, "Kinkaku.jpg")); Assert.IsFalse(physicalFileInfo.Exists); var entity = FileMappingInfoRepository.Load(dbc, 1L); Assert.IsNull(entity); } }