MouseMovementControllerTests.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using PixiEditor.Models.Controllers;
  2. using PixiEditor.Models.Position;
  3. using Xunit;
  4. namespace PixiEditorTests.ModelsTests.ControllersTests
  5. {
  6. public class MouseMovementControllerTests
  7. {
  8. [Fact]
  9. public void TestThatStartRecordingMouseMovChangesStartsRecordingAndInvokesEvent()
  10. {
  11. bool eventInvoked = false;
  12. MouseMovementController controller = new MouseMovementController();
  13. controller.StartedRecordingChanges += (sender, e) => eventInvoked = true;
  14. controller.StartRecordingMouseMovementChanges(false);
  15. Assert.True(controller.IsRecordingChanges);
  16. Assert.True(eventInvoked);
  17. Assert.False(controller.ClickedOnCanvas);
  18. }
  19. [Fact]
  20. public void TestThatRecordMouseMovementChangeRecordsMouseMovementChange()
  21. {
  22. MouseMovementController controller = new MouseMovementController();
  23. controller.StartRecordingMouseMovementChanges(false);
  24. controller.RecordMouseMovementChange(new Coordinates(5, 5));
  25. Assert.NotEmpty(controller.LastMouseMoveCoordinates);
  26. Assert.Equal(new Coordinates(5, 5), controller.LastMouseMoveCoordinates[0]);
  27. Assert.True(controller.IsRecordingChanges);
  28. }
  29. [Fact]
  30. public void TestThatMouseMovedRaisesEvent()
  31. {
  32. bool eventRaised = false;
  33. Coordinates position = new Coordinates(5, 5);
  34. MouseMovementEventArgs args = new MouseMovementEventArgs(default(Coordinates));
  35. MouseMovementController controller = new MouseMovementController();
  36. controller.MousePositionChanged += (s, e) =>
  37. {
  38. eventRaised = true;
  39. args = e;
  40. };
  41. controller.MouseMoved(position);
  42. Assert.True(eventRaised);
  43. Assert.Equal(position, args.NewPosition);
  44. }
  45. [Fact]
  46. public void TestStopRecordingChangesStopsRecording()
  47. {
  48. MouseMovementController controller = new MouseMovementController();
  49. controller.StartRecordingMouseMovementChanges(true);
  50. controller.StopRecordingMouseMovementChanges();
  51. Assert.False(controller.IsRecordingChanges);
  52. Assert.False(controller.ClickedOnCanvas);
  53. }
  54. [Fact]
  55. public void TestThatRecordChangesNotRecords()
  56. {
  57. MouseMovementController controller = new MouseMovementController();
  58. controller.RecordMouseMovementChange(new Coordinates(5, 10));
  59. Assert.False(controller.IsRecordingChanges);
  60. Assert.Empty(controller.LastMouseMoveCoordinates);
  61. }
  62. }
  63. }