public async Task ReturnsData2() { var dbContextOptionsBuilder = new DbContextOptionsBuilder(); using (var connection = CreateInMemoryDatabase()) { _ = dbContextOptionsBuilder.UseSqlite(connection); var modelBuilder = SqliteConventionSetBuilder.CreateModelBuilder(); _ = modelBuilder.Entity <TestEntity>(); ModelBuilderHelpers.ConvertAllDateTimeOffSetPropertiesOnModelBuilderToLong(modelBuilder); var model = modelBuilder.FinalizeModel(); dbContextOptionsBuilder = dbContextOptionsBuilder.UseModel(model); using (var dbContext = new TestWithContextOptionsDbContext(dbContextOptionsBuilder.Options)) { _ = dbContext.Database.EnsureCreated(); var result = await dbContext.TestEntity .Where(GetSelector()) .ToArrayAsync() .ConfigureAwait(false); } } }
private void CsdlXElementComparer(IEnumerable <XElement> expectedCsdls, IEnumerable <XElement> actualCsdls, EdmVersion version) { var updatedExpectedCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(expectedCsdls.ToArray(), version); var updatedActualCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(actualCsdls.ToArray(), version); new ConstructiveApiCsdlXElementComparer().Compare(updatedExpectedCsdls.ToList(), updatedActualCsdls.ToList()); }
private void SerializeAndVerifyAgainst(IEdmModel model, IEnumerable <XElement> expectedCsdls, EdmVersion version) { IEnumerable <XElement> actualCsdls = this.GetSerializerResult(model).Select(s => XElement.Load(new StringReader(s))); var updatedExpectedCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(expectedCsdls.ToArray(), version); var updatedActualCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(actualCsdls.ToArray(), version); this.CompareCsdls(updatedExpectedCsdls, updatedActualCsdls); }
private void SerializingValidator(IEdmModel expectedModel, IEnumerable <XElement> actualCsdls) { var expectedCsdls = this.GetSerializerResult(expectedModel).Select(n => XElement.Parse(n)); var updatedExpectedCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(expectedCsdls.ToArray(), EdmVersion.V40); var updatedActualCsdls = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(actualCsdls.ToArray(), EdmVersion.V40); new ConstructiveApiCsdlXElementComparer().Compare(updatedExpectedCsdls.ToList(), updatedActualCsdls.ToList()); }
protected void BasicFindMethodsTest(IEnumerable <XElement> testData) { testData = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(testData.ToArray(), this.EdmVersion); var testModelImmutable = this.GetParserResult(testData); this.VerifyFindMethods(testData, testModelImmutable); var testModelConstructible = (new EdmToStockModelConverter()).ConvertToStockModel(testModelImmutable); IEnumerable <EdmError> serializationErrors; var testCsdls = this.GetSerializerResult(testModelConstructible, out serializationErrors).Select(n => XElement.Parse(n)); Assert.AreEqual(0, serializationErrors.Count(), "Find method test should not have serialization errors: " + Environment.NewLine + String.Join(Environment.NewLine, serializationErrors)); this.VerifyFindMethods(testCsdls, testModelConstructible); }
private void VerifyRoundTrip(IEnumerable <XElement> expectedCsdl, IEnumerable <XElement> inputCsdl, bool validate) { var model = this.GetParserResult(inputCsdl); if (validate) { IEnumerable <EdmError> errors; model.Validate(Microsoft.OData.Edm.EdmConstants.EdmVersion4, out errors); Assert.AreEqual(0, errors.Count(), "Unexpected errors."); } var actualCsdl = this.GetSerializerResult(model).Select(n => XElement.Parse(n)); var updatedActual = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(actualCsdl.ToArray(), EdmVersion.V40); var updatedExpected = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(expectedCsdl.ToArray(), EdmVersion.V40); new SerializerResultVerifierUsingXml().Verify(updatedExpected, updatedActual); }
private void AnnotationRoundTripCsdlCheck(IEnumerable <XElement> csdls, XElement expectedAnnotation, AnnotationInfo annotationInfo, ElementLocation annotationLocation, IEdmModel model) { var errors = new EdmLibTestErrors(); this.VerifySemanticValidation(model, EdmVersion.Latest, errors); var isValid = this.ValidateAnnotation(model, expectedAnnotation, annotationInfo, annotationLocation); Assert.IsTrue(isValid, "Invalid XElement annotation."); IEnumerable <EdmError> serializationErrors; var serializedModelCsdls = this.GetSerializerResult(model, EdmVersion.Latest, out serializationErrors).Select(n => XElement.Parse(n)); Assert.AreEqual(0, serializationErrors.Count(), "Round trip test should not have serialization errors: " + Environment.NewLine + String.Join(Environment.NewLine, serializationErrors)); var csdlsWithLastestEdmVersion = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(csdls.ToArray(), EdmVersion.Latest).ToList(); new ConstructiveApiCsdlXElementComparer().Compare(csdlsWithLastestEdmVersion, serializedModelCsdls.ToList()); }
public void XElementAnnotationTestOutOfLineVocabularyAnnotationWithAnnotationModel() { var model = XElementAnnotationModelBuilder.OutOfLineVocabularyAnnotationWithAnnotationModel(); var errors = new EdmLibTestErrors(); this.VerifySemanticValidation(model, EdmVersion.Latest, errors); var vocabularyAnnotation = model.VocabularyAnnotations; Assert.AreEqual(1, vocabularyAnnotation.Count(), "Invalid vocabulary count."); var actualAnnotationValue = (model.GetAnnotationValue(vocabularyAnnotation.Single(), "http://foo", "Annotation") as EdmStringConstant).Value; XElement expectedAnnotationValue = new XElement("{http://foo}Annotation", "1"); Assert.IsTrue(expectedAnnotationValue.ToString().Equals(actualAnnotationValue), "XElement annotation are not the same."); var serializedModel = ModelBuilderHelpers.ReplaceCsdlNamespacesForEdmVersion(this.GetSerializerResult(model).Select(n => XElement.Parse(n)).ToArray(), EdmVersion.V40).ToList(); new ConstructiveApiCsdlXElementComparer().Compare(XElementAnnotationModelBuilder.OutOfLineVocabularyAnnotationWithAnnotationCsdl().ToList(), serializedModel); }
/// <inheritdoc/> protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); ModelBuilderHelpers.ConvertAllDateTimeOffSetPropertiesOnModelBuilderToLong(modelBuilder); }