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()); }
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); }
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); }
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); }
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); }
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_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_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); }
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 }); }