public async Task ActivateActorAsync_ExceptionDuringActivation_ActorNotStoredAndDeleted() { var activator = new TestActivator(); var manager = CreateActorManager(typeof(ThrowsDuringOnActivateAsync), activator); var id = ActorId.CreateRandom(); await Assert.ThrowsAsync <InvalidTimeZoneException>(async() => { await manager.ActivateActorAsync(id); }); Assert.False(manager.TryGetActorAsync(id, out _)); Assert.Equal(1, activator.DeleteCallCount); }
public void Test_Convert_NotFileDrop2() { // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent(DataFormats.FileDrop, () => true); dataMock.Setup_GetData(DataFormats.FileDrop, () => null); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object); // 変換テスト var target = new DragEventArgsToFilePathConverter(); target.ConvertToUri = false; target.Convert(args, null, null, null) .Should().BeNull(); }
public void Test_Convert_NotUrlDrop2() { // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent("UniformResourceLocatorW", () => true); dataMock.Setup_GetData("UniformResourceLocatorW", () => null); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object); // 変換テスト var target = new DragEventArgsToUrlConverter(); target.ConvertToUri = false; target.Convert(args, null, null, null) .Should().BeNull(); }
public void Test_AcceptDropFormats_UnrelatedConverter() { // テスト対象のアクションを呼び出すためのトリガ作成 var element = new UIElement(); var action = new TestAction(); // 専用インターフェースを実装していない(ただAcceptFormatsプロパティがあるだけの)コンバータ var converter = new TestHasFormatsValueConverter(); converter.AcceptFormats = new[] { "Conv1", "Conv2", }; // テスト対象の準備 var trigger = new DragDropTerigger(); trigger.AcceptDropEffect = DragDropEffects.Move; trigger.ParameterConverter = converter; // 要素にアタッチ trigger.Attach(element); trigger.Actions.Add(action); // ドロップデータのモック var dataMock = new TestDataObject(); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object, allowedEffects: DragDropEffects.All); args.RoutedEvent = UIElement.DragOverEvent; // 専用インターフェスでなければコンパータでの指定はできない。プロパティ指定もしていなければ何でも受け付ける状態。 { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => false); dataMock.Setup_GetDataPresent("Conv2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } }
public void Test_Convert_ToUri_NotConvert() { // ドロップテストデータ var url = "::::::::::::"; // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent("UniformResourceLocatorW", () => true); dataMock.Setup_GetData("UniformResourceLocatorW", () => new MemoryStream(Encoding.Unicode.GetBytes(url))); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object); // 変換テスト var target = new DragEventArgsToUrlConverter(); target.ConvertToUri = true; target.Convert(args, null, null, null) .Should().BeNull(); }
public void Test_Convert_ToString_Empty() { // ドロップテストデータ var paths = new string[] { }; // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent(DataFormats.FileDrop, () => true); dataMock.Setup_GetData(DataFormats.FileDrop, () => paths); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object); // 変換テスト var target = new DragEventArgsToFilePathConverter(); target.ConvertToUri = false; target.Convert(args, null, null, null) .Should().BeOfType <string[]>() .Which .Should().BeEmpty(); }
public void Test_Convert_ToString_FromAnsi() { // ドロップテストデータ var url = "https://www.google.com"; // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent("UniformResourceLocator", () => true); dataMock.Setup_GetData("UniformResourceLocator", () => new MemoryStream(Encoding.ASCII.GetBytes(url))); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object); // 変換テスト var target = new DragEventArgsToUrlConverter(); target.ConvertToUri = false; target.Convert(args, null, null, null) .Should().BeOfType <string>() .Which .Should().Be(url); }
public void Test_DragDrop_Convert() { // テスト対象のアクションを呼び出すためのトリガ作成 var element = new UIElement(); var action = new TestAction(); // テスト対象の準備 var trigger = new DragDropTerigger(); trigger.ParameterConverter = new DragEventArgsToFilePathConverter(); // 要素にアタッチ trigger.Attach(element); trigger.Actions.Add(action); // ドロップテストデータ var paths = new string[] { @"c:\directory\file.ext", @"d:\path\to\data" }; // モック var dataMock = new TestDataObject(); dataMock.Setup_GetDataPresent(DataFormats.FileDrop, () => true); dataMock.Setup_GetData(DataFormats.FileDrop, () => paths); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object, allowedEffects: DragDropEffects.All); args.RoutedEvent = UIElement.DropEvent; args.Effects = DragDropEffects.Copy; // イベントを発生させる element.RaiseEvent(args); // イベント処理結果検証 action.InvokedParameters.Should().Contain(new[] { paths }); }
public void Test_AcceptDropFormats_FromProperty() { // テスト対象のアクションを呼び出すためのトリガ作成 var element = new UIElement(); var action = new TestAction(); // テスト対象の準備 var trigger = new DragDropTerigger(); trigger.AcceptDropFormats = new[] { "Data1", "Data2", }; trigger.AcceptDropEffect = DragDropEffects.Move; // 要素にアタッチ trigger.Attach(element); trigger.Actions.Add(action); // ドロップデータのモック var dataMock = new TestDataObject(); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object, allowedEffects: DragDropEffects.All); args.RoutedEvent = UIElement.DragOverEvent; // プロパティで指定される書式に含めば受け付けられる { // イベントデータ設定 dataMock.Setup_GetDataPresent("Data1", () => true); dataMock.Setup_GetDataPresent("Data2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } // プロパティで指定される書式に含めば受け付けられる { // イベントデータ設定 dataMock.Setup_GetDataPresent("Data1", () => false); dataMock.Setup_GetDataPresent("Data2", () => true); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } // プロパティでの指定に含まなければ受け付けない { // イベントデータ設定 dataMock.Setup_GetDataPresent("Data1", () => false); dataMock.Setup_GetDataPresent("Data2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.None); } }
public void Test_AcceptDropFormats_FromBoth() { // テスト対象のアクションを呼び出すためのトリガ作成 var element = new UIElement(); var action = new TestAction(); // 専用インターフェースを実装したコンバータ var converter = new Mock <IDragDropTriggerParameterConverter>(); converter.Setup(m => m.AcceptFormats).Returns(() => new[] { "Conv1", "Conv2", }); // テスト対象の準備 var trigger = new DragDropTerigger(); trigger.AcceptDropFormats = new[] { "Data1", "Data2", }; trigger.AcceptDropEffect = DragDropEffects.Move; trigger.ParameterConverter = converter.Object; // 要素にアタッチ trigger.Attach(element); trigger.Actions.Add(action); // ドロップデータのモック var dataMock = new TestDataObject(); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object, allowedEffects: DragDropEffects.All); args.RoutedEvent = UIElement.DragOverEvent; // 両方指定されていればプロパティ優先。コンバータの持っている書式指定は無効。 { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => true); dataMock.Setup_GetDataPresent("Conv2", () => false); dataMock.Setup_GetDataPresent("Data1", () => false); dataMock.Setup_GetDataPresent("Data2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.None); } // 両方指定されていればプロパティ優先。プロパティの指定を受け付ける。 { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => false); dataMock.Setup_GetDataPresent("Conv2", () => false); dataMock.Setup_GetDataPresent("Data1", () => true); dataMock.Setup_GetDataPresent("Data2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } // プロパティでの書式指定値が null trigger.AcceptDropFormats = null; // 明示的な指定があれば全許可の値も効く。コンバータの書式指定ではなく、プロパティに null 設定したものが効く。(なのでなんでも受付になっている) { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => true); dataMock.Setup_GetDataPresent("Conv2", () => false); dataMock.Setup_GetDataPresent("Data1", () => false); dataMock.Setup_GetDataPresent("Data2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } }
public void Test_AcceptDropFormats_FromConverter() { // テスト対象のアクションを呼び出すためのトリガ作成 var element = new UIElement(); var action = new TestAction(); // 専用インターフェースを実装したコンバータ var converter = new Mock <IDragDropTriggerParameterConverter>(); converter.Setup(m => m.AcceptFormats).Returns(() => new[] { "Conv1", "Conv2", }); // テスト対象の準備 var trigger = new DragDropTerigger(); trigger.AcceptDropEffect = DragDropEffects.Move; trigger.ParameterConverter = converter.Object; // 要素にアタッチ trigger.Attach(element); trigger.Actions.Add(action); // ドロップデータのモック var dataMock = new TestDataObject(); // テスト用のイベントパラメータ生成 var args = TestActivator.CreateDragEventArgs(dataMock.Object, allowedEffects: DragDropEffects.All); args.RoutedEvent = UIElement.DragOverEvent; // コンバータで指定される書式に含めば受け付けられる { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => true); dataMock.Setup_GetDataPresent("Conv2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } // コンバータで指定される書式に含めば受け付けられる { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => false); dataMock.Setup_GetDataPresent("Conv2", () => true); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.Move); } // コンバータでの指定に含まなければ受け付けない { // イベントデータ設定 dataMock.Setup_GetDataPresent("Conv1", () => false); dataMock.Setup_GetDataPresent("Conv2", () => false); args.Effects = DragDropEffects.None; // イベントを発生させる args.Handled = false; element.RaiseEvent(args); // イベント処理結果検証 args.Effects.Should().Be(DragDropEffects.None); } }