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 CancelEditTest001() { Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>(); trackerFactory.Setup(tf => tf.GetNewGuid()).Returns(() => Guid.NewGuid()); DeckEditViewModel model = new DeckEditViewModel(); Deck deck = Deck.CreateNewDeck(trackerFactory.Object); model.Deck = deck; PopulateObject(deck, StartProp); //fix up selected version id - otherwise it would be some random guid deck.History.Last().VersionId = deck.SelectedVersionId; TestContext.WriteLine("Begin Edit"); model.BeginEdit(); PopulateObject(deck, EditProp); TestContext.WriteLine("Cancel Edit"); model.CancelEdit(); foreach (PropertyInfo p in deck.GetType().GetProperties()) { if (p.CanWrite) { if (p.PropertyType.GetInterface(nameof(ICollection)) != null) { CollectionAssert.AreEqual(StartProp[p.PropertyType] as ICollection, p.GetValue(deck) as ICollection, "Failed validation of prop {0} of type {1}", p.Name, p.PropertyType); } else { Assert.AreEqual(StartProp[p.PropertyType], p.GetValue(deck), "Failed validation of prop {0} of type {1}", p.Name, p.PropertyType); } } } }
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); }