public static Target Random(bool deep = false) { var target = new Target(); target.String = _strings[_random.Next(0, 10)]; target.AnotherString = _otherStrings[_random.Next(0, 10)]; target.Number = _random.Next(); target.Flag = _random.Next(0, 10) > 5; target.Float = float.Parse(_random.NextDouble().ToString()); target.NumberArray = new[] { _random.Next(0, 10), _random.Next(0, 10), _random.Next(0, 10) }; target.NumberArray = target.NumberArray.Distinct().ToArray(); switch (_random.Next(0, 2)) { case 0: target.Color = Colors.Blue; break; case 1: target.Color = Colors.Green; break; default: target.Color = Colors.Red; break; } target.Long = 100 * _random.Next(); target.Double = _random.NextDouble(); target.Long = _random.Next() * 10000; target.Date = DateTime.Today.AddDays(_random.Next(-10000, 10000)).ToUniversalTime(); if (deep) { target.Inner = Random(); var number = _random.Next(1, 10); target.Children = new Target[number]; for (int i = 0; i < number; i++) { target.Children[i] = Random(); } target.StringDict = Enumerable.Range(0, _random.Next(1, 10)).ToDictionary(i => $"key{i}", i => $"value{i}"); } return target; }
public void pending_changes_by_type() { using (var session = theStore.LightweightSession()) { var user1 = new User(); var user2 = new User(); session.Store(user1, user2); var target1 = new Target(); var target2 = new Target(); session.Store(target1, target2); session.PendingChanges.UpdatesFor<User>().ShouldHaveTheSameElementsAs(user1, user2); session.PendingChanges.UpdatesFor<Target>().ShouldHaveTheSameElementsAs(target1, target2); } }
public void pending_changes_from_store() { using (var session = theStore.LightweightSession()) { var user1 = new User(); var user2 = new User(); session.Store(user1, user2); var target1 = new Target(); var target2 = new Target(); session.Store(target1, target2); session.PendingChanges.Updates().Count().ShouldBe(4); session.PendingChanges.Updates().ShouldContain(user1); session.PendingChanges.Updates().ShouldContain(user2); session.PendingChanges.Updates().ShouldContain(target1); session.PendingChanges.Updates().ShouldContain(target2); } }
public void pending_deletions() { using (var session = theStore.LightweightSession()) { var user1 = new User(); var user2 = new User(); session.Delete(user1); session.Delete<User>(user2.Id); var target1 = new Target(); session.Delete(target1); session.PendingChanges.Deletions().Count().ShouldBe(3); session.PendingChanges.DeletionsFor(typeof(Target)).OfType<DeleteById>().Single().Id.ShouldBe(target1.Id); session.PendingChanges.DeletionsFor(typeof(Target)).OfType<DeleteById>().Single().Document.ShouldBe(target1); session.PendingChanges.DeletionsFor<User>().Count().ShouldBe(2); session.PendingChanges.DeletionsFor<User>().OfType<DeleteById>().Any(x => x.Document == user1).ShouldBeTrue(); session.PendingChanges.DeletionsFor<User>().OfType<DeleteById>().Any(x => x.Id.As<Guid>() == user2.Id).ShouldBeTrue(); } }