public void Smoke() { using (var context = CreateMethodContext()) { SaveBasicData(context); // Get dataset identifiers var dataSet0 = context.GetDataSet("DataSet0"); var dataSet1 = context.GetDataSet("DataSet1"); // Create keys var keyA0 = new BaseSampleKey() { RecordName = "A", RecordIndex = 0 }; var keyB0 = new BaseSampleKey() { RecordName = "B", RecordIndex = 0 }; // Verify the result of loading records from datasets A and B VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); VerifyLoad(context, "DataSet0", keyB0); VerifyLoad(context, "DataSet1", keyB0); } }
/// <summary>Save derived record.</summary> private TemporalId SaveDerivedRecord(Context context, string dataSetName, string recordName, int recordIndex) { var rec = new DerivedSample(); rec.RecordName = recordName; rec.RecordIndex = recordIndex; rec.DoubleElement = 300.0; rec.LocalDateElement = new LocalDate(2003, 5, 1); rec.LocalTimeElement = new LocalTime(10, 15, 30); // 10:15:30 rec.LocalMinuteElement = new LocalMinute(10, 15); // 10:15 rec.LocalDateTimeElement = new LocalDateTime(2003, 5, 1, 10, 15); // 2003-05-01T10:15:00 rec.InstantElement = new LocalDateTime(2003, 5, 1, 10, 15).ToInstant(DateTimeZone.Utc); // 2003-05-01T10:15:00 rec.StringElement2 = String.Empty; // Test how empty value is recorded rec.DoubleElement2 = 200.0; // String collections rec.ArrayOfString = new string[] { "A", "B", "C" }; rec.ListOfString = new List <string>() { "A", "B", "C" }; // Double collections rec.ArrayOfDouble = new double[] { 1.0, 2.0, 3.0 }; rec.ListOfDouble = new List <double>() { 1.0, 2.0, 3.0 }; rec.ListOfNullableDouble = new List <double?>(); rec.ListOfNullableDouble.Add(10.0); rec.ListOfNullableDouble.Add(null); rec.ListOfNullableDouble.Add(30.0); // Data element rec.DataElement = new ElementSample(); rec.DataElement.DoubleElement3 = 1.0; rec.DataElement.StringElement3 = "AA"; // Data element list rec.DataElementList = new List <ElementSample>(); var elementList0 = new ElementSample(); elementList0.DoubleElement3 = 1.0; elementList0.StringElement3 = "A0"; rec.DataElementList.Add(elementList0); var elementList1 = new ElementSample(); elementList1.DoubleElement3 = 2.0; elementList1.StringElement3 = "A1"; rec.DataElementList.Add(elementList1); // Key element rec.KeyElement = new BaseSampleKey(); rec.KeyElement.RecordName = "BB"; rec.KeyElement.RecordIndex = 2; // Key element list rec.KeyElementList = new List <BaseSampleKey>(); var keyList0 = new BaseSampleKey(); keyList0.RecordName = "B0"; keyList0.RecordIndex = 3; rec.KeyElementList.Add(keyList0); var keyList1 = new BaseSampleKey(); keyList1.RecordName = "B1"; keyList1.RecordIndex = 4; rec.KeyElementList.Add(keyList1); var dataSet = context.GetDataSet(dataSetName); context.SaveOne(rec, dataSet); return(rec.Id); }
public void QueryWithFilterOnDeletedRecord() { using (var context = CreateMethodContext()) { // Create datasets var dataSet0 = context.CreateDataSet("DataSet0"); // Create initial version of the records context.Log.Verify("Write A;0 record to A dataset"); SaveMinimalRecord(context, "DataSet0", "A", 0, 1); var keyA0 = new BaseSampleKey { RecordName = "A", RecordIndex = 0 }; // Load from storage before deletion if (true) { var loadedRecord = context.LoadOrNull(keyA0, dataSet0); context.Log.Assert(loadedRecord != null, "Record found before deletion assert."); } // Query before deletion if (true) { var query = context.GetQuery <BaseSample>(dataSet0) .Where(p => p.Version == 1) .AsEnumerable(); int recordCount = 0; foreach (var obj in query) { var dataSetName = context.LoadOrNull <DataSet>(obj.DataSet).DataSetName; context.Log.Verify($"Query returned Key={obj.Key} DataSet={dataSetName} Version={obj.Version}"); recordCount++; } context.Log.Verify($"Query record count before deletion {recordCount}"); } context.Log.Verify("Delete A;0 record in A dataset"); context.Delete(keyA0, dataSet0); // Load from storage before deletion if (true) { var loadedRecord = context.LoadOrNull(keyA0, dataSet0); context.Log.Assert(loadedRecord == null, "Record not found after deletion assert."); } // Query after deletion if (true) { var query = context.GetQuery <BaseSample>(dataSet0) .Where(p => p.Version == 1) .AsEnumerable(); int recordCount = 0; foreach (var obj in query) { var dataSetName = context.LoadOrNull <DataSet>(obj.DataSet).DataSetName; context.Log.Verify($"Query returned Key={obj.Key} DataSet={dataSetName} Version={obj.Version}"); recordCount++; } context.Log.Verify($"Query record count after deletion {recordCount}"); } } }
public void PolymorphicQuery() { using (var context = CreateMethodContext()) { // Saves data in A and B datasets, A is an import of B SaveCompleteData(context); // Look in B dataset var dataSet3 = context.GetDataSet("DataSet3"); // Load record of derived types by base context.Log.Verify("Load all records by key as MongoTestData."); { var key = new BaseSampleKey { RecordName = "A", RecordIndex = 0 }; var obj = context.LoadOrNull(key, dataSet3); context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } { var key = new BaseSampleKey { RecordName = "B", RecordIndex = 0 }; var obj = context.LoadOrNull(key, dataSet3); context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } { var key = new BaseSampleKey { RecordName = "C", RecordIndex = 0 }; var obj = context.LoadOrNull(key, dataSet3); context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } { var key = new BaseSampleKey { RecordName = "D", RecordIndex = 0 }; var obj = context.LoadOrNull(key, dataSet3); context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } { context.Log.Verify("Query by MongoTestData, unconstrained"); var query = context.GetQuery <BaseSample>(dataSet3).SortBy(p => p.RecordName).SortBy(p => p.RecordIndex); foreach (var obj in query.AsEnumerable()) { context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } } { context.Log.Verify("Query by DerivedSample : BaseSample which also picks up DerivedFromDerivedSample : DerivedSample, unconstrained"); var query = context.GetQuery <DerivedSample>(dataSet3).SortBy(p => p.RecordName).SortBy(p => p.RecordIndex); foreach (var obj in query.AsEnumerable()) { context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } } { context.Log.Verify("Query by OtherDerivedSample : BaseSample, unconstrained"); var query = context.GetQuery <OtherDerivedSample>(dataSet3).SortBy(p => p.RecordName).SortBy(p => p.RecordIndex); foreach (var obj in query.AsEnumerable()) { context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } } { context.Log.Verify("Query by DerivedFromDerivedSample : DerivedSample, where DerivedSample : BaseSample, unconstrained"); var query = context.GetQuery <DerivedFromDerivedSample>(dataSet3).SortBy(p => p.RecordName).SortBy(p => p.RecordIndex); foreach (var obj in query.AsEnumerable()) { context.Log.Verify($" Key={obj.Key} Type={obj.GetType().Name}"); } } } }
public void TypeChange() { using (var context = CreateMethodContext()) { // Create records with minimal data var dataSet0 = context.CreateDataSet("DataSet0"); SaveDerivedRecord(context, "DataSet0", "A", 0); var dataSet1 = context.CreateDataSet("DataSet1", new TemporalId[] { dataSet0 }); SaveDerivedFromDerivedRecord(context, "DataSet1", "B", 0); // Create keys var keyA0 = new BaseSampleKey() { RecordName = "A", RecordIndex = 0 }; var keyB0 = new BaseSampleKey() { RecordName = "B", RecordIndex = 0 }; // Verify the result of loading records from datasets A and B context.Log.Verify("Initial load"); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); VerifyLoad(context, "DataSet0", keyB0); VerifyLoad(context, "DataSet1", keyB0); context.Log.Verify("Query in dataset DataSet0 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet1"); context.Log.Verify("Change A0 record type in B dataset to C"); SaveOtherDerivedRecord(context, "DataSet1", "A", 0); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); context.Log.Verify("Query in dataset DataSet0 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet1"); context.Log.Verify("Change A0 record type in A dataset to C"); SaveOtherDerivedRecord(context, "DataSet0", "A", 0); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); context.Log.Verify("Query in dataset DataSet0 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet1"); context.Log.Verify("Change B0 record type in B dataset to C"); SaveOtherDerivedRecord(context, "DataSet1", "B", 0); VerifyLoad(context, "DataSet0", keyB0); VerifyLoad(context, "DataSet1", keyB0); context.Log.Verify("Query in dataset DataSet0 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1 for type DerivedSample"); VerifyQuery <DerivedSample>(context, "DataSet1"); } }
public void Delete() { using (var context = CreateMethodContext()) { SaveBasicData(context); // Get dataset identifiers var dataSet0 = context.GetDataSet("DataSet0"); var dataSet1 = context.GetDataSet("DataSet1"); // Create keys var keyA0 = new BaseSampleKey() { RecordName = "A", RecordIndex = 0 }; var keyB0 = new BaseSampleKey() { RecordName = "B", RecordIndex = 0 }; // Verify the result of loading records from datasets A and B context.Log.Verify("Initial load"); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); VerifyLoad(context, "DataSet0", keyB0); VerifyLoad(context, "DataSet1", keyB0); context.Log.Verify("Query in dataset DataSet0"); VerifyQuery <BaseSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1"); VerifyQuery <BaseSample>(context, "DataSet1"); context.Log.Verify("Delete A0 record in B dataset"); context.Delete(keyA0, dataSet1); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); context.Log.Verify("Query in dataset DataSet0"); VerifyQuery <BaseSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1"); VerifyQuery <BaseSample>(context, "DataSet1"); context.Log.Verify("Delete A0 record in A dataset"); context.Delete(keyA0, dataSet0); VerifyLoad(context, "DataSet0", keyA0); VerifyLoad(context, "DataSet1", keyA0); context.Log.Verify("Query in dataset DataSet0"); VerifyQuery <BaseSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1"); VerifyQuery <BaseSample>(context, "DataSet1"); context.Log.Verify("Delete B0 record in B dataset"); context.Delete(keyB0, dataSet1); VerifyLoad(context, "DataSet0", keyB0); VerifyLoad(context, "DataSet1", keyB0); context.Log.Verify("Query in dataset DataSet0"); VerifyQuery <BaseSample>(context, "DataSet0"); context.Log.Verify("Query in dataset DataSet1"); VerifyQuery <BaseSample>(context, "DataSet1"); } }