コード例 #1
0
        public void SetAlgorithmCommandTest()
        {
            var target = new SpiderViewModel();
            try
            {
                var originalAlgorithm = AlgorithmType.Search;
                var newAlgorithm = AlgorithmType.Study;

                Assert.Equal(originalAlgorithm, target.AlgorithmType);
                foreach (var variation in target.Algorithms)
                {
                    Assert.Equal(originalAlgorithm == variation.Value, variation.IsChecked);
                }

                target.SetAlgorithmCommand.Execute(new AlgorithmViewModel(newAlgorithm, false));

                Assert.Equal(newAlgorithm, target.AlgorithmType);
                foreach (var variation in target.Algorithms)
                {
                    Assert.Equal(newAlgorithm == variation.Value, variation.IsChecked);
                }
            }
            finally
            {
                target.Dispose();
            }
        }
コード例 #2
0
ファイル: App.xaml.cs プロジェクト: ricksladkey/Spider
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            Utils.SuppressConsole = true;

            MainWindow window = new MainWindow();

            // Create the ViewModel to which
            // the main window binds.
            var viewModel = new SpiderViewModel();

            // When the ViewModel asks to be closed,
            // close the window.
            EventHandler handler = null;
            handler = delegate
            {
                viewModel.RequestClose -= handler;
                window.Close();
            };
            viewModel.RequestClose += handler;

            // Allow all controls in the window to
            // bind to the ViewModel by setting the
            // DataContext, which propagates down
            // the element tree.
            window.DataContext = viewModel;

            window.Show();
        }
コード例 #3
0
        public TableauViewModel(SpiderViewModel model)
        {
            Model = model;

            DiscardPiles = new ObservableCollection <PileViewModel>();
            Piles        = new ObservableCollection <PileViewModel>();
            StockPile    = new PileViewModel();
            MovePile     = new PileViewModel();
        }
コード例 #4
0
 public void NewCommandTest()
 {
     var target = new SpiderViewModel();
     try
     {
         target.NewCommand.Execute(null);
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         foreach (var pile in target.Tableau.Piles)
         {
             Assert.True(pile.Count > 1);
             Assert.Equal(pile[0].CardType, CardType.Down);
             Assert.Equal(pile[pile.Count - 1].CardType, CardType.Up);
         }
         Assert.True(target.Tableau.StockPile.Count > 0);
     }
     finally
     {
         target.Dispose();
     }
 }
コード例 #5
0
        public void SetVariationCommandTest()
        {
            var originalVariation = Variation.Spider2;
            var newVariation = Variation.Spiderette4;

            var target = new SpiderViewModel();
            try
            {
                Assert.Equal(originalVariation, target.Variation);
                foreach (var variation in target.Variations)
                {
                    Assert.Equal(originalVariation == variation.Value, variation.IsChecked);
                }
                Assert.Equal(originalVariation.NumberOfPiles, target.Game.NumberOfPiles);

                target.SetVariationCommand.Execute(new VariationViewModel(newVariation, false));

                Assert.Equal(newVariation, target.Variation);
                foreach (var variation in target.Variations)
                {
                    Assert.Equal(newVariation == variation.Value, variation.IsChecked);
                }
                Assert.Equal(newVariation.NumberOfPiles, target.Game.NumberOfPiles);
            }
            finally
            {
                target.Dispose();
            }
        }
コード例 #6
0
 public void SpiderViewModelConstructorTest2()
 {
     var target = new SpiderViewModel(sampleData);
     try
     {
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(CardType.Up, target.Tableau.DiscardPiles[1][0].CardType);
         Assert.Equal(CardType.EmptySpace, target.Tableau.DiscardPiles[2][0].CardType);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         var pile = target.Tableau.Piles[0];
         Assert.Equal(11, pile.Count);
         Assert.Equal(pile[0].CardType, CardType.Down);
         Assert.Equal(1, target.Tableau.StockPile.Count);
     }
     finally
     {
         target.Dispose();
     }
 }
コード例 #7
0
 public void SpiderViewModelConstructorTest1()
 {
     var target = new SpiderViewModel();
     try
     {
         Assert.Equal(target.Variation.NumberOfFoundations, target.Tableau.DiscardPiles.Count);
         Assert.Equal(target.Variation.NumberOfPiles, target.Tableau.Piles.Count);
         foreach (var pile in target.Tableau.Piles)
         {
             Assert.Equal(1, pile.Count);
             Assert.Equal(pile[0].CardType, CardType.EmptySpace);
         }
         Assert.Equal(0, target.Tableau.StockPile.Count);
     }
     finally
     {
         target.Dispose();
     }
 }