Ejemplo n.º 1
0
        public void Test_Convert_Dispose()
        {
            // モック
            var resourceUnicodeMock = new Mock <IDisposable>();
            var resourceAnsiMock    = new Mock <IDisposable>();
            var dataMock            = new TestDataObject();

            dataMock.Setup_GetDataPresent("UniformResourceLocatorW", () => true);
            dataMock.Setup_GetDataPresent("UniformResourceLocator", () => true);
            dataMock.Setup_GetData("UniformResourceLocatorW", () => resourceUnicodeMock.Object);
            dataMock.Setup_GetData("UniformResourceLocator", () => resourceAnsiMock.Object);

            // テスト用のイベントパラメータ生成
            var args = TestActivator.CreateDragEventArgs(dataMock.Object);

            // 変換テスト
            var target = new DragEventArgsToUrlConverter();

            target.ConvertToUri = false;
            target.Convert(args, null, null, null)
            .Should().BeNull();

            resourceUnicodeMock.Verify(m => m.Dispose(), Times.Once());
            resourceAnsiMock.Verify(m => m.Dispose(), Times.Once());
        }
Ejemplo n.º 2
0
        public void Test_Convert_ToString_PriorityUnicode()
        {
            // ドロップテストデータ
            var urlUnicode = "https://www.google.com/unicode";
            var urlAnsi    = "https://www.google.com/ansi";

            // モック
            var dataMock = new TestDataObject();

            dataMock.Setup_GetDataPresent("UniformResourceLocatorW", () => true);
            dataMock.Setup_GetDataPresent("UniformResourceLocator", () => true);
            dataMock.Setup_GetData("UniformResourceLocatorW", () => new MemoryStream(Encoding.Unicode.GetBytes(urlUnicode)));
            dataMock.Setup_GetData("UniformResourceLocator", () => new MemoryStream(Encoding.ASCII.GetBytes(urlAnsi)));

            // テスト用のイベントパラメータ生成
            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(urlUnicode);
        }
Ejemplo n.º 3
0
        public void Test_Convert_ToString_Fallback2()
        {
            // ドロップテストデータ
            var url = "https://www.google.com";

            // モック
            var resourceMock = new Mock <IDisposable>();

            resourceMock.Setup(m => m.Dispose()).Throws(new Exception());
            var dataMock = new TestDataObject();

            dataMock.Setup_GetDataPresent("UniformResourceLocatorW", () => true);
            dataMock.Setup_GetDataPresent("UniformResourceLocator", () => true);
            dataMock.Setup_GetData("UniformResourceLocatorW", () => resourceMock.Object);
            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);
        }
Ejemplo n.º 4
0
        public void Test_Convert_ToUri()
        {
            // ドロップテストデータ
            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);

            // テストデータを期待値の型に変換しておく
            var expects = paths.Select(p => new Uri(p)).ToArray();

            // 変換テスト
            var target = new DragEventArgsToFilePathConverter();

            target.ConvertToUri = true;
            target.Convert(args, null, null, null)
            .Should().BeOfType <Uri[]>()
            .Which
            .Should().Equal(expects);
        }
Ejemplo n.º 5
0
        public void Test_Convert_ToUri_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 expects = new Uri(url);

            // 変換テスト
            var target = new DragEventArgsToUrlConverter();

            target.ConvertToUri = true;
            target.Convert(args, null, null, null)
            .Should().BeOfType <Uri>()
            .Which
            .Should().Be(expects);
        }
Ejemplo n.º 6
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();
        }
Ejemplo n.º 7
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();
        }
Ejemplo n.º 8
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();
        }
Ejemplo n.º 9
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();
        }
Ejemplo n.º 10
0
        public void Test_Convert_ByTargetType_NotUri()
        {
            // ドロップテストデータ
            var url = "https://www.google.com";

            // モック
            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 = false;
            target.Convert(args, typeof(int), null, null)
            .Should().BeOfType <string>()
            .Which
            .Should().Be(url);
        }
Ejemplo n.º 11
0
        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 });
        }