Exemple #1
0
            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());
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #9
0
            /// <inheritdoc/>
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);

                ModelBuilderHelpers.ConvertAllDateTimeOffSetPropertiesOnModelBuilderToLong(modelBuilder);
            }