public void ConfirmModel()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records, Is.Not.Empty);

            InMemoryRecord record = Records[0];

            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.IsConfirmed(), Is.False);

            Assert.That(model.Id, Is.EqualTo(record.RecordId));

            AreaValueModel confirmModel = Repository.FindById(model.Id);

            Assert.That(confirmModel, Is.Not.Null);

            Repository.Confirm(confirmModel);

            Assert.That(Records.Count, Is.EqualTo(1));

            record = Records[0];
            Assert.That(record.RecordId, Is.EqualTo(confirmModel.Id));
            Assert.That(record.IsConfirmed(), Is.True);
        }
        public void GetHistory_NoChanges()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            AmplaRecord record = Repository.FindRecord(model.Id);

            Assert.That(record, Is.Not.Null);

            Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area));
            Assert.That(record.GetValue("Value"), Is.EqualTo(model.Value));
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(model.Id));

            AmplaAuditRecord auditRecord = Repository.GetHistory(model.Id);

            Assert.That(auditRecord, Is.Not.Null);

            Assert.That(auditRecord.Id, Is.EqualTo(model.Id));
            Assert.That(auditRecord.Location, Is.EqualTo(location));
            Assert.That(auditRecord.Module, Is.EqualTo(module));
            Assert.That(auditRecord.Changes, Is.Empty);
        }
Beispiel #3
0
        public void ModelsUseLocalTime()
        {
            Assert.That(Records, Is.Empty);

            DateTime localHour = DateTime.Now.TrimToHour();

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100, Sample = localHour
            };

            DateTime utcHour = localHour.ToUniversalTime();

            Repository.Add(model);
            Assert.That(Records, Is.Not.Empty);

            InMemoryRecord record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
            Assert.That(record.GetFieldValue("Sample Period", DateTime.MinValue), Is.EqualTo(utcHour));

            Assert.That(model.Id, Is.EqualTo(record.RecordId));

            AreaValueModel updated = Repository.FindById(record.RecordId);

            Assert.That(updated.Sample, Is.EqualTo(localHour));
        }
Beispiel #4
0
        public void RecordUsesUtcTime()
        {
            Assert.That(Records, Is.Empty);

            DateTime beforeUtc = DateTime.UtcNow.AddMinutes(-5);
            DateTime afterUtc  = DateTime.UtcNow.AddMinutes(+5);

            DateTime beforeLocal = beforeUtc.ToLocalTime();
            DateTime afterLocal  = afterUtc.ToLocalTime();

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records, Is.Not.Empty);

            InMemoryRecord record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
            Assert.That(record.GetFieldValue("Sample Period", DateTime.MinValue),
                        Is.GreaterThan(beforeUtc).And.LessThan(afterUtc));

            Assert.That(model.Id, Is.EqualTo(record.RecordId));

            AreaValueModel updated = Repository.FindById(record.RecordId);

            Assert.That(updated.Sample, Is.GreaterThan(beforeLocal).And.LessThan(afterLocal));
        }
Beispiel #5
0
        public void GetVersionsSingleRecord()
        {
            Assert.That(Records, Is.Empty);

            DateTime localHour = DateTime.Now.TrimToHour();

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100, Sample = localHour
            };

            Repository.Add(model);

            ModelVersions versions = Repository.GetVersions(model.Id);

            Assert.That(versions, Is.Not.Null);
            Assert.That(versions.Versions, Is.Not.Empty);
            Assert.That(versions.Versions.Count, Is.EqualTo(1));

            ModelVersion <AreaValueModel> version = (ModelVersion <AreaValueModel>)versions.Versions[0];

            Assert.That(version.Display, Is.EqualTo("User created record"));
            Assert.That(version.Model.Id, Is.EqualTo(model.Id));
            Assert.That(version.Model.Area, Is.EqualTo(model.Area));
            Assert.That(version.Model.Sample, Is.EqualTo(model.Sample));
            Assert.That(version.Model.Value, Is.EqualTo(model.Value));

            AmplaAuditRecord history = Repository.GetHistory(model.Id);

            Assert.That(history.Changes, Is.Empty);
        }
        public void GetHistory_WithChanges()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            AmplaRecord record = Repository.FindRecord(model.Id);

            Assert.That(record, Is.Not.Null);

            Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area));
            Assert.That(record.GetValue("Value"), Is.EqualTo(model.Value));
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(model.Id));

            AreaValueModel updated = new AreaValueModel {
                Id = model.Id, Area = "ROM", Value = 200
            };

            DateTime before = DateTime.Now.AddMinutes(-1);
            DateTime after  = DateTime.Now.AddMinutes(+1);

            Repository.Update(updated);
            record = Repository.FindRecord(model.Id);
            Assert.That(record, Is.Not.Null);

            Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area));
            Assert.That(record.GetValue("Value"), Is.EqualTo(200));
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(model.Id));

            AmplaAuditRecord auditRecord = Repository.GetHistory(model.Id);

            Assert.That(auditRecord, Is.Not.Null);

            Assert.That(auditRecord.Id, Is.EqualTo(model.Id));
            Assert.That(auditRecord.Location, Is.EqualTo(location));
            Assert.That(auditRecord.Module, Is.EqualTo(module));
            Assert.That(auditRecord.Changes, Is.Not.Empty);
            Assert.That(auditRecord.Changes.Count, Is.EqualTo(1));

            AmplaAuditSession session = auditRecord.Changes[0];

            Assert.That(session.User, Is.EqualTo("User"));
            Assert.That(session.EditedTime, Is.InRange(before, after));
            Assert.That(session.Fields, Is.Not.Empty);

            AssertAuditField(session, "Value", "100", "200");
        }
        public void GetVersion_NotRelevantChanges()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            int recordId = Records[0].RecordId;

            InMemoryRecord record = new InMemoryRecord(ProductionViews.AreaValueModelView())
            {
                Module   = module,
                Location = location,
                RecordId = recordId
            };

            record.SetFieldValue("Sample Period", DateTime.Today);

            UpdateRecord(record);

            Assert.That(Records.Count, Is.EqualTo(1));
            Assert.That(Records[0].GetFieldValue("Sample Period", DateTime.MinValue), Is.EqualTo(DateTime.Today.ToUniversalTime()));

            ModelVersions versions = Repository.GetVersions(model.Id);

            Assert.That(versions, Is.Not.Null);
            Assert.That(versions.Versions, Is.Not.Empty);
            Assert.That(versions.Versions.Count, Is.EqualTo(2));  // one version change ('Sample Period') is not relevant

            ModelVersion <AreaValueModel> last    = (ModelVersion <AreaValueModel>)versions.Versions[0];
            ModelVersion <AreaValueModel> current = (ModelVersion <AreaValueModel>)versions.Versions[1];

            Assert.That(last.Model, Is.Not.Null);
            Assert.That(last.IsCurrentVersion, Is.False);
            Assert.That(last.Model.Id, Is.EqualTo(model.Id));
            Assert.That(last.Model.Value, Is.EqualTo(model.Value));
            Assert.That(last.Model.Area, Is.EqualTo(model.Area));

            Assert.That(current.Model, Is.Not.Null);
            Assert.That(current.IsCurrentVersion, Is.True);
            Assert.That(current.Model.Id, Is.EqualTo(model.Id));
            Assert.That(current.Model.Value, Is.EqualTo(model.Value));
            Assert.That(current.Model.Area, Is.EqualTo(model.Area));
        }
Beispiel #8
0
        public void GetVersionsWithEdit()
        {
            Assert.That(Records, Is.Empty);

            DateTime localHour = DateTime.Now.TrimToHour();

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100, Sample = localHour
            };

            Repository.Add(model);

            AreaValueModel update = new AreaValueModel {
                Id = model.Id, Area = "ROM", Value = 100, Sample = model.Sample.AddMinutes(1)
            };

            Repository.Update(update);

            ModelVersions versions = Repository.GetVersions(model.Id);

            AmplaAuditRecord history = Repository.GetHistory(model.Id);

            Assert.That(versions, Is.Not.Null);
            Assert.That(versions.Versions, Is.Not.Empty);
            Assert.That(versions.Versions.Count, Is.EqualTo(2));

            ModelVersion <AreaValueModel> last    = (ModelVersion <AreaValueModel>)versions.Versions[0];
            ModelVersion <AreaValueModel> current = (ModelVersion <AreaValueModel>)versions.Versions[1];

            Assert.That(last.Display, Is.EqualTo("User created record"));
            Assert.That(last.Model.Id, Is.EqualTo(model.Id));
            Assert.That(last.Model.Area, Is.EqualTo(model.Area));
            Assert.That(last.Model.Sample, Is.EqualTo(model.Sample));
            Assert.That(last.Model.Value, Is.EqualTo(model.Value));

            Assert.That(current.Display, Is.EqualTo("User modified record (Sample Period)"));
            Assert.That(current.Model.Id, Is.EqualTo(update.Id));
            Assert.That(current.Model.Area, Is.EqualTo(update.Area));
            Assert.That(current.Model.Sample, Is.EqualTo(update.Sample));
            Assert.That(current.Model.Value, Is.EqualTo(update.Value));

            Assert.That(history.Changes, Is.Not.Empty);
            Assert.That(history.Changes[0].Fields[0].Name, Is.EqualTo("SampleDateTime"));
        }
        public void UpdateModelWithNoChanges()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            InMemoryRecord record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
            Assert.That(record.GetFieldValue("Sample Period", DateTime.MinValue), Is.Not.EqualTo(DateTime.MinValue));

            Assert.That(model.Id, Is.EqualTo(record.RecordId));

            AreaValueModel updateModel = Repository.FindById(model.Id);

            Assert.That(updateModel, Is.Not.Null);

            int currentMessages = Messages.Count;

            Assert.That(currentMessages, Is.GreaterThan(0));

            updateModel.Value = 100;
            Repository.Update(updateModel);

            Assert.That(Messages.Count, Is.EqualTo(currentMessages + 1), string.Join("\r\n", Messages));
            // record is not submitted
            Assert.That(Records.Count, Is.EqualTo(1));

            record = Records[0];
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.EqualTo(model.Id));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
        }
        public void AddNewModelWithExistingId()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100, Id = 99
            };

            Repository.Add(model);
            Assert.That(Records, Is.Not.Empty);

            InMemoryRecord record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.RecordId, Is.Not.EqualTo(99));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
            Assert.That(record.GetFieldValue("Sample Period", DateTime.MinValue), Is.Not.EqualTo(DateTime.MinValue));

            Assert.That(model.Id, Is.EqualTo(record.RecordId));
        }
        public void FindByIdForDefaultModel()
        {
            InMemoryRecord record = ProductionRecords.NewRecord();

            //record.SetFieldValue("Value", 100);
            //record.SetFieldValue("Area", "ROM");
            record.Location = location;
            record.MarkAsNew();

            int recordId = record.SaveTo(webServiceClient);

            Assert.That(recordId, Is.GreaterThan(0));

            Assert.That(DatabaseRecords, Is.Not.Empty);
            AreaValueModel model = repository.FindById(recordId);

            Assert.That(model.Id, Is.EqualTo(recordId));
            Assert.That(model.Value, Is.EqualTo(0));
            Assert.That(model.Area, Is.EqualTo(null));

            Assert.That(repository.FindById(recordId + 1), Is.Null);
        }
        public void GetVersions_NoChanges()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            AmplaRecord record = Repository.FindRecord(model.Id);

            Assert.That(record, Is.Not.Null);

            Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area));
            Assert.That(record.GetValue("Value"), Is.EqualTo(model.Value));
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(model.Id));

            ModelVersions versions = Repository.GetVersions(model.Id);

            Assert.That(versions, Is.Not.Null);
            Assert.That(versions.Versions, Is.Not.Empty);
            Assert.That(versions.Id, Is.EqualTo(record.Id));
            Assert.That(versions.Location, Is.EqualTo(record.Location));
            Assert.That(versions.Module, Is.EqualTo(record.Module));
            Assert.That(versions.ModelName, Is.EqualTo("Area Value Model"));

            ModelVersion <AreaValueModel> version = (ModelVersion <AreaValueModel>)versions.Versions[0];

            Assert.That(version.Model, Is.Not.Null);
            Assert.That(version.Model.Id, Is.EqualTo(model.Id));
            Assert.That(version.Model.Value, Is.EqualTo(model.Value));
            Assert.That(version.Model.Area, Is.EqualTo(model.Area));

            Assert.That(version.IsCurrentVersion, Is.True);
        }
        public void FindById()
        {
            InMemoryRecord record = ProductionRecords.NewRecord();

            record.SetFieldValue("Value", 100);
            record.SetFieldValue("Area", "ROM");
            record.Location = location;
            record.MarkAsNew();

            int recordId = SaveRecord(record);

            Assert.That(recordId, Is.GreaterThan(0));

            Assert.That(Records, Is.Not.Empty);

            AreaValueModel model = Repository.FindById(recordId);

            Assert.That(model.Id, Is.EqualTo(recordId));
            Assert.That(model.Value, Is.EqualTo(100));
            Assert.That(model.Area, Is.EqualTo("ROM"));

            Assert.That(Repository.FindById(recordId + 1), Is.Null);
        }
Beispiel #14
0
        public void AmplaRecordShowsLocalTime()
        {
            Assert.That(Records, Is.Empty);

            DateTime localHour = DateTime.Now.TrimToHour();

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100, Sample = localHour
            };

            Repository.Add(model);
            Assert.That(Records, Is.Not.Empty);

            int recordId = Records[0].RecordId;

            AmplaRecord record = Repository.FindRecord(recordId);

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(recordId));
            Assert.That(record.GetValue("Area"), Is.EqualTo("ROM"));
            Assert.That(record.GetValue("Value"), Is.EqualTo(100.0d));
            Assert.That(record.GetValue("Sample Period"), Is.EqualTo(localHour));
        }
        public void UpdateModel()
        {
            Assert.That(Records, Is.Empty);

            AreaValueModel model = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);
            Assert.That(Records.Count, Is.EqualTo(1));

            InMemoryRecord record = Records[0];

            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.GreaterThan(0));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(100.0d));
            Assert.That(record.GetFieldValue("Sample Period", DateTime.MinValue), Is.Not.EqualTo(DateTime.MinValue));

            Assert.That(model.Id, Is.EqualTo(record.RecordId));

            AreaValueModel updateModel = Repository.FindById(model.Id);

            Assert.That(updateModel, Is.Not.Null);

            updateModel.Value = 200;
            Repository.Update(updateModel);

            Assert.That(Records.Count, Is.EqualTo(1));

            record = Records[0];
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.RecordId, Is.EqualTo(model.Id));
            Assert.That(record.GetFieldValue("Area", ""), Is.EqualTo("ROM"));
            Assert.That(record.GetFieldValue <double>("Value", 0), Is.EqualTo(200.0d));
        }
Beispiel #16
0
        public void BindWithEmptyOriginalValue_double()
        {
            AmplaRecord amplaRecord = new AmplaRecord(100)
            {
                Location = location, Module = module, ModelName = ""
            };

            amplaRecord.AddColumn("Value", typeof(double));
            amplaRecord.AddColumn("Area", typeof(string));
            amplaRecord.SetValue("Value", "100.0");
            amplaRecord.SetValue("Area", "ROM");

            AmplaAuditRecord auditRecord = new AmplaAuditRecord
            {
                Id       = amplaRecord.Id,
                Location = amplaRecord.Location,
                Module   = amplaRecord.Module,
                Changes  = new List <AmplaAuditSession>
                {
                    new AmplaAuditSession("User", DateTime.Today)
                }
            };

            auditRecord.Changes[0].Fields.Add(new AmplaAuditField
            {
                Name          = "Value",
                OriginalValue = "",
                EditedValue   = "100"
            });

            AreaValueModel model = new AreaValueModel {
                Id = 100, Area = "ROM", Value = 100.0d
            };
            ModelVersions modelVersions = new ModelVersions(amplaRecord);
            IModelProperties <AreaValueModel> modelProperties = new ModelProperties <AreaValueModel>();

            AmplaViewProperties <AreaValueModel> viewProperties = new AmplaViewProperties <AreaValueModel>(modelProperties);
            GetViewsResponse view = new GetViewsResponse
            {
                Context = new GetViewsResponseContext(),
                Views   = new[] { ProductionViews.AreaValueModelView() }
            };

            viewProperties.Initialise(view);
            AmplaGetDataVersionsBinding <AreaValueModel> binding =
                new AmplaGetDataVersionsBinding <AreaValueModel>(amplaRecord, auditRecord, model, modelVersions,
                                                                 modelProperties, viewProperties);

            Assert.That(binding.Validate(), Is.True);
            Assert.That(binding.Bind(), Is.True);

            Assert.That(modelVersions.Versions, Is.Not.Empty);
            Assert.That(modelVersions.Versions.Count, Is.EqualTo(2));

            ModelVersion <AreaValueModel> last    = (ModelVersion <AreaValueModel>)modelVersions.Versions[0];
            ModelVersion <AreaValueModel> current = (ModelVersion <AreaValueModel>)modelVersions.Versions[1];

            Assert.That(last.IsCurrentVersion, Is.False);
            Assert.That(current.IsCurrentVersion, Is.True);

            Assert.That(last.Model.Area, Is.EqualTo(model.Area));
            Assert.That(current.Model.Area, Is.EqualTo(model.Area));

            Assert.That(last.Model.Value, Is.EqualTo(0d));
            Assert.That(current.Model.Value, Is.EqualTo(100d));

            Assert.That(last.Model.Id, Is.EqualTo(100));
            Assert.That(current.Model.Id, Is.EqualTo(100));
        }
        public void GetVersion_WithChanges()
        {
            Assert.That(Records, Is.Empty);

            DateTime       beforeAdd = DateTime.Now.AddSeconds(-1);
            AreaValueModel model     = new AreaValueModel {
                Area = "ROM", Value = 100
            };

            Repository.Add(model);

            DateTime afterAdd = DateTime.Now.AddSeconds(+1);

            Assert.That(Records.Count, Is.EqualTo(1));

            AmplaRecord record = Repository.FindRecord(model.Id);

            Assert.That(record, Is.Not.Null);

            DateTime beforeUpdate = DateTime.Now.AddSeconds(-1);

            AreaValueModel updated = new AreaValueModel {
                Id = model.Id, Area = "ROM", Value = 200
            };

            DateTime afterUpdate = DateTime.Now.AddSeconds(1);

            Repository.Update(updated);
            record = Repository.FindRecord(model.Id);
            Assert.That(record, Is.Not.Null);

            Assert.That(record.GetValue("Area"), Is.EqualTo(model.Area));
            Assert.That(record.GetValue("Value"), Is.EqualTo(200));
            Assert.That(record.Location, Is.EqualTo(location));
            Assert.That(record.Id, Is.EqualTo(model.Id));

            ModelVersions versions = Repository.GetVersions(model.Id);

            Assert.That(versions, Is.Not.Null);
            Assert.That(versions.Versions, Is.Not.Empty);
            Assert.That(versions.Versions.Count, Is.EqualTo(2));

            ModelVersion <AreaValueModel> last    = (ModelVersion <AreaValueModel>)versions.Versions[0];
            ModelVersion <AreaValueModel> current = (ModelVersion <AreaValueModel>)versions.Versions[1];

            Assert.That(last.Model, Is.Not.Null);
            Assert.That(last.IsCurrentVersion, Is.False);
            Assert.That(last.Model.Id, Is.EqualTo(model.Id));
            Assert.That(last.Model.Value, Is.EqualTo(model.Value));
            Assert.That(last.Model.Area, Is.EqualTo(model.Area));
            Assert.That(last.User, Is.EqualTo("User"));
            Assert.That(last.VersionDate, Is.InRange(beforeAdd, afterAdd));
            Assert.That(last.Version, Is.EqualTo(1));

            Assert.That(current.Model, Is.Not.Null);
            Assert.That(current.IsCurrentVersion, Is.True);
            Assert.That(current.Model.Id, Is.EqualTo(updated.Id));
            Assert.That(current.Model.Value, Is.EqualTo(updated.Value));
            Assert.That(current.Model.Area, Is.EqualTo(updated.Area));
            Assert.That(current.User, Is.EqualTo("User"));
            Assert.That(current.VersionDate, Is.InRange(beforeUpdate, afterUpdate));
            Assert.That(current.Version, Is.EqualTo(2));
        }