public void SaveDeckTest001_OverwriteCurrent()
        {
            Mock <ITrackerFactory>      trackerFactory = new Mock <ITrackerFactory>();
            Mock <ITracker>             tracker        = new Mock <ITracker>();
            ObservableCollection <Deck> deckList       = new ObservableCollection <Deck>();

            tracker.Setup(t => t.Decks).Returns(deckList);

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            CardInstance card = new CardInstance(new Card(trackerFactory.Object));

            Deck deck = Deck.CreateNewDeck(trackerFactory.Object, "test deck");

            deck.SelectedVersion.Cards.Add(card);

            //  List<CardInstance> modifiedCollection = new List<CardInstance>()
            {
                //    card, //include this and ensure it has been cloned
                deck.SelectedVersion.Cards.Add(new CardInstance(Card.Unknown));
                deck.SelectedVersion.Cards.Add(new CardInstance(new Card(trackerFactory.Object)));
            };

            DeckEditViewModel model = new DeckEditViewModel();

            model.Deck = deck;

            model.SaveDeck(tracker.Object, new SerializableVersion(0, 0), deck.SelectedVersion.Cards);

            Assert.AreEqual(3, model.Deck.SelectedVersion.Cards.Count);
            Assert.AreEqual(1, model.Deck.History.Count);
        }
        public void SaveDeckTest003_SaveMinor()
        {
            Mock <ITrackerFactory>      trackerFactory = new Mock <ITrackerFactory>();
            Mock <ITracker>             tracker        = new Mock <ITracker>();
            ObservableCollection <Deck> deckList       = new ObservableCollection <Deck>();

            tracker.Setup(t => t.Decks).Returns(deckList);

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            CardInstance card = new CardInstance(new Card(trackerFactory.Object));

            Deck deck = Deck.CreateNewDeck(trackerFactory.Object, "test deck");

            deck.Class = DataModel.Enums.DeckClass.Assassin; //any
            deck.SelectedVersion.Cards.Add(card);

            DeckEditViewModel model = new DeckEditViewModel();

            model.Deck = deck;

            model.BeginEdit();

            deck.SelectedVersion.Cards.Add(new CardInstance(Card.Unknown));
            deck.SelectedVersion.Cards.Add(new CardInstance(new Card(trackerFactory.Object)));

            model.SaveDeck(tracker.Object, new SerializableVersion(0, 1), deck.SelectedVersion.Cards);

            Assert.AreEqual(3, model.Deck.SelectedVersion.Cards.Count);
            Assert.AreEqual(new SerializableVersion(1, 1), model.Deck.SelectedVersion.Version);
            Assert.AreEqual(1, model.Deck.History[0].Cards.Count);
            Assert.AreEqual(2, model.Deck.History.Count);
            //endsure inial card has ebeen cloned
            Assert.IsFalse(model.Deck.SelectedVersion.Cards.Contains(card));
        }
        public void SaveDeckTest005_SaveNotLatestVersion_EnsureNewMajorHaveMinor_0()
        {
            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            trackerFactory.Setup(tf => tf.GetDateTimeNow()).Returns(DateTime.Now);
            Mock <ITracker>             tracker  = new Mock <ITracker>();
            ObservableCollection <Deck> deckList = new ObservableCollection <Deck>();

            tracker.Setup(t => t.Decks).Returns(deckList);

            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            CardInstance card = new CardInstance(new Card(trackerFactory.Object));

            Deck deck = Deck.CreateNewDeck(trackerFactory.Object, "test deck");

            deck.Class = DataModel.Enums.DeckClass.Assassin;                  //any
            deck.CreateVersion(1, 3, trackerFactory.Object.GetDateTimeNow()); //ensure its not ordered :)
            Guid selectedVersion = deck.CreateVersion(1, 1, trackerFactory.Object.GetDateTimeNow()).VersionId;

            deck.CreateVersion(1, 2, trackerFactory.Object.GetDateTimeNow());

            deck.SelectedVersionId = selectedVersion; //select 1.1

            DeckEditViewModel model = new DeckEditViewModel();

            model.Deck = deck;

            model.BeginEdit();

            //tray save as 1.2
            model.SaveDeck(tracker.Object, new SerializableVersion(1, 0), deck.SelectedVersion.Cards);

            Assert.AreEqual(new SerializableVersion(2, 0), model.Deck.SelectedVersion.Version);
            Assert.AreEqual(5, model.Deck.History.Count);
        }
Exemple #4
0
 private async void SaveToolbarItem_Click(object sender, EventArgs e)
 {
     viewModel.SaveDeck();
     await Navigation.PopAsync();
 }