Example #1
0
 public void CreateAndValidateStoreItemCollection_throws_ArgumentNullException_for_null_targetFrameworkVersion()
 {
     Assert.Equal(
         "targetFrameworkVersion",
         Assert.Throws <ArgumentNullException>(
             () => EdmExtension.CreateAndValidateStoreItemCollection(string.Empty, null, null, true)).ParamName);
 }
Example #2
0
        public void CreateStorageMappingItemCollection_returns_errors_for_invalid_ssdl()
        {
            var v3 = new Version(3, 0, 0, 0);
            var edmItemCollection   = EdmExtension.CreateAndValidateEdmItemCollection(Csdl, v3);
            var storeItemCollection =
                EdmExtension.CreateAndValidateStoreItemCollection(
                    Ssdl,
                    v3,
                    resolver,
                    false);

            var invalidMsl = XDocument.Parse(Msl);

            invalidMsl
            .Descendants("{http://schemas.microsoft.com/ado/2009/11/mapping/cs}ScalarProperty")
            .First()
            .SetAttributeValue("Name", "Non-existing-property");

            IList <EdmSchemaError> edmErrors;
            var storageMappingItemCollection =
                EdmExtension.CreateStorageMappingItemCollection(
                    edmItemCollection,
                    storeItemCollection,
                    invalidMsl.ToString(),
                    out edmErrors);

            Assert.Null(storageMappingItemCollection);
            Assert.Equal(1, edmErrors.Count);
            Assert.Contains("'Non-existing-property'", edmErrors[0].Message);
        }
Example #3
0
 public void CreateAndValidateStoreItemCollection_throws_ArgumentNullException_for_null_ssdl()
 {
     Assert.Equal(
         "ssdl",
         Assert.Throws <ArgumentNullException>(
             () => EdmExtension.CreateAndValidateStoreItemCollection(null, new Version(1, 0, 0, 0), null, true)).ParamName);
 }
Example #4
0
        public void CreateAndValidateStoreItemCollection_throws_ArgumentException_for_incorrect_targetFrameworkVersion()
        {
            var exception = Assert.Throws <ArgumentException>(
                () => EdmExtension.CreateAndValidateStoreItemCollection(string.Empty, new Version(0, 0), null, true));

            Assert.Equal("targetFrameworkVersion", exception.ParamName);
            Assert.True(
                exception.Message.StartsWith(
                    string.Format(CultureInfo.CurrentCulture, Resources.ErrorNonValidTargetVersion, "0.0")));
        }
Example #5
0
        public void CreateAndValidateStoreItemCollection_creates_StoreItemCollection_for_valid_ssdl_and_targetFrameworkVersion()
        {
            var storeItemCollection =
                EdmExtension.CreateAndValidateStoreItemCollection(
                    Ssdl,
                    new Version(3, 0, 0, 0),
                    resolver,
                    catchThrowNamingConflicts: true);

            Assert.NotNull(storeItemCollection);
            Assert.NotNull(storeItemCollection.GetItem <EntityType>("AdventureWorksModel.Store.Entities"));
        }
Example #6
0
        public void CreateStorageMappingItemCollection_creates_storage_mapping_item_collection_for_valid_artifacts()
        {
            var v3 = new Version(3, 0, 0, 0);
            var edmItemCollection   = EdmExtension.CreateAndValidateEdmItemCollection(Csdl, v3);
            var storeItemCollection =
                EdmExtension.CreateAndValidateStoreItemCollection(
                    Ssdl,
                    v3,
                    resolver,
                    false);

            IList <EdmSchemaError> edmErrors;
            var storageMappingItemCollection = EdmExtension.CreateStorageMappingItemCollection(
                edmItemCollection, storeItemCollection, Msl, out edmErrors);

            Assert.NotNull(storageMappingItemCollection);
            Assert.Equal(0, edmErrors.Count);
            Assert.NotNull(storageMappingItemCollection.GetItem <GlobalItem>("AdventureWorksEntities3"));
        }
Example #7
0
        public void CreateAndValidateStoreItemCollection_throws_for_invalid_ssdl_catchThrowNamingConflicts_false()
        {
            var invalidSsdl       = XDocument.Parse(Ssdl);
            var entityTypeElement =
                invalidSsdl.Descendants("{http://schemas.microsoft.com/ado/2009/11/edm/ssdl}EntityType").Single();

            entityTypeElement.AddAfterSelf(new XElement("{http://schemas.microsoft.com/ado/2009/11/edm/ssdl}InvalidElement"));
            entityTypeElement.AddAfterSelf(entityTypeElement);

            var exception = Assert.Throws <InvalidOperationException>(
                () => EdmExtension.CreateAndValidateStoreItemCollection(
                    invalidSsdl.ToString(),
                    new Version(3, 0, 0, 0),
                    resolver,
                    catchThrowNamingConflicts: false));

            Assert.True(exception.Message.StartsWith(Resources.ErrorNonValidSsdl.Replace("{0}", string.Empty)));
            var exceptionData = (IList <EdmSchemaError>)exception.Data["ssdlErrors"];

            Assert.Equal(3, exceptionData.Count);
            Assert.True(exceptionData.All(e => exception.Message.Contains(e.Message)));
        }
Example #8
0
        public void CreateAndValidateStoreItemCollection_rewrites_exception_for_naming_conflicts_when_catchThrowNamingConflicts_true()
        {
            var invalidSsdl       = XDocument.Parse(Ssdl);
            var entityTypeElement =
                invalidSsdl.Descendants("{http://schemas.microsoft.com/ado/2009/11/edm/ssdl}EntityType").Single();

            entityTypeElement.AddAfterSelf(new XElement("{http://schemas.microsoft.com/ado/2009/11/edm/ssdl}InvalidElement"));
            entityTypeElement.AddAfterSelf(entityTypeElement);

            var exception = Assert.Throws <InvalidOperationException>(
                () => EdmExtension.CreateAndValidateStoreItemCollection(
                    invalidSsdl.ToString(),
                    new Version(3, 0, 0, 0),
                    resolver,
                    catchThrowNamingConflicts: true));

            var exceptionData = (IList <EdmSchemaError>)exception.Data["ssdlErrors"];

            Assert.Equal(string.Format(Resources.ErrorNameCollision, exceptionData[0].Message), exception.Message);
            Assert.Equal(3, exceptionData.Count);
            Assert.Contains("'AdventureWorksModel.Store.Entities'", exceptionData[0].Message);
            Assert.Contains("'InvalidElement'", exceptionData[1].Message);
            Assert.Contains("InvalidElement", exceptionData[2].Message);
        }