Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
            }
        }