public void BasicBindingTest()
 {
     // Use Set to copy String1 to String2 using the DataContext of a Window.
     var viewModel = new BasicViewModel { String1 = "Test" };
     Assert.Equal("Test", viewModel.String1);
     Assert.Equal(null, viewModel.String2);
     TestHelper.AttachAndExecute(new Window { DataContext = viewModel },
         TestHelper.Configure(new Set { PropertyName = "String2" },
             TestHelper.TargetBinder,
             value => BindingOperations.SetBinding(value, Set.ValueProperty, new Binding("String1"))));
     Assert.Equal("Test", viewModel.String1);
     Assert.Equal("Test", viewModel.String2);
 }
 public void BreakTest()
 {
     // Create a infinite loop containing a break preceded by an statement and followed
     // an statement and check that only the former is executed.
     var viewModel = new BasicViewModel();
     Assert.Equal(null, viewModel.String1);
     Assert.Equal(null, viewModel.String2);
     TestHelper.AttachAndExecute(new Window { DataContext = viewModel },
         new While
         {
             Body =
             {
                 TestHelper.Configure(new Set { PropertyName = "String1", Value = "Test1" },
                     TestHelper.TargetBinder),
                 new Break(),
                 TestHelper.Configure(new Set { PropertyName = "String2", Value = "Test2" },
                     TestHelper.TargetBinder),
             }
         });
     Assert.Equal("Test1", viewModel.String1);
     Assert.Equal(null, viewModel.String2);
 }