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); }
private async void SaveToolbarItem_Click(object sender, EventArgs e) { viewModel.SaveDeck(); await Navigation.PopAsync(); }