public void postprocess_sync_hit()
        {
            var reader = Substitute.For <DbDataReader>();

            reader.Read().Returns(true);
            reader.GetFieldValue <Guid>(0).Returns(theNewVersion);

            var exceptions = new List <Exception>();

            theCallback.Postprocess(reader, exceptions);

            exceptions.Any().ShouldBeFalse();

            theVersionTracker.Version <Target>(theId).ShouldBe(theNewVersion);
        }
        public void find_version_for_doc_by_type_and_id()
        {
            var id = Guid.NewGuid();

            var userVersion = Guid.NewGuid();

            var issueVersion = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store <User>(id, userVersion);
            tracker.Store <Issue>(id, issueVersion);

            tracker.Version <User>(id).ShouldBe(userVersion);
            tracker.Version <Issue>(id).ShouldBe(issueVersion);
        }
        public void null_when_it_does_not_have_it()
        {
            var tracker = new VersionTracker();

            tracker.Version <User>(Guid.NewGuid())
            .ShouldBeNull();
        }
        public void find_version_for_doc_by_type_and_id()
        {
            var id = Guid.NewGuid();

            var userVersion = Guid.NewGuid();

            var issueVersion = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store<User>(id, userVersion);
            tracker.Store<Issue>(id, issueVersion);

            tracker.Version<User>(id).ShouldBe(userVersion);
            tracker.Version<Issue>(id).ShouldBe(issueVersion);

        }
        public void can_overwrite_version()
        {
            var id = Guid.NewGuid();

            var version1 = Guid.NewGuid();
            var version2 = Guid.NewGuid();

            var tracker = new VersionTracker();
            tracker.Store<User>(id, version1);

            tracker.Store<User>(id, version2);

            tracker.Version<User>(id).ShouldBe(version2);
        }
        public void can_overwrite_version()
        {
            var id = Guid.NewGuid();

            var version1 = Guid.NewGuid();
            var version2 = Guid.NewGuid();

            var tracker = new VersionTracker();

            tracker.Store <User>(id, version1);

            tracker.Store <User>(id, version2);

            tracker.Version <User>(id).ShouldBe(version2);
        }
        public void null_when_it_does_not_have_it()
        {
            var tracker = new VersionTracker();

            SpecificationExtensions.ShouldBeNull(tracker.Version <User>(Guid.NewGuid()));
        }
 public void null_when_it_does_not_have_it()
 {
     var tracker = new VersionTracker();
     tracker.Version<User>(Guid.NewGuid())
         .ShouldBeNull();
 }