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); }
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)); }
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)); }
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)); }
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); }
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)); }
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)); }