To test the logic, maybe move the logic to separate functions or classes or projects and test them. For example:
private void MouseButtonEventArgs( object sender, MouseButtonEventArgs e )
{
Control src = e.Source as Control;
if( src != null )
{
var b = MyLogic.GetBrush( e.ChangedButton );
if( b != null ) src.Background = b;
}
}
. . .
public class MyLogic
{
public static Brush GetBrush( MouseButton changedButton )
{
switch( changedButton )
{
case MouseButton.Left:
return Brushes.Green;
case MouseButton.Middle:
return Brushes.Red;
case MouseButton.Right:
return Brushes.Yellow;
case MouseButton.XButton1:
return Brushes.Brown;
case MouseButton.XButton2:
return Brushes.Purple;
default:
return null;
}
}
}
. . .
[TestClass]
public class MyTest
{
[TestMethod]
public void MyTest1( )
{
Assert.AreEqual( Brushes.Brown, MyLogic.GetBrush( MouseButton.XButton1 ) );
// etc.
// . . .
}
}