public void Custom_resolver_is_used_to_resolve_DbProviderServices_when_loading_StoreItemCollection()
        {
            var mockResolver = new Mock <IDbDependencyResolver>();

            mockResolver
            .Setup(
                m => m.GetService(
                    It.Is <Type>(t => t == typeof(DbProviderServices)),
                    It.Is <object>(key => (string)key == "System.Data.SqlClient")))
            .Returns(SqlProviderServices.Instance);

            IList <EdmSchemaError> errors;
            var storeItemCollection =
                StoreItemCollection.Create(
                    new[] { XDocument.Parse(Ssdl).CreateReader() },
                    null,
                    mockResolver.Object,
                    out errors);

            Assert.NotNull(storeItemCollection);
            Assert.NotNull(storeItemCollection.GetItem <EntityType>("AdventureWorksModel.Store.Entities"));
            Assert.Equal(0, errors.Count);

            mockResolver.Verify(
                m => m.GetService(
                    It.Is <Type>(t => t == typeof(DbProviderServices)),
                    It.Is <object>(key => (string)key == "System.Data.SqlClient")), Times.Once());
        }
        public void StoreItemCollection_Create_factory_method_throws_for_null_reader_in_the_collection()
        {
            IList <EdmSchemaError> errors;

            Assert.Equal(Strings.CheckArgumentContainsNullFailed("xmlReaders"),
                         Assert.Throws <ArgumentException>(
                             () => StoreItemCollection.Create(new XmlReader[1], null, null, out errors)).Message);
        }
        public void StoreItemCollection_Create_factory_method_throws_for_empty_reader_collection()
        {
            IList <EdmSchemaError> errors;

            Assert.Equal(Strings.StoreItemCollectionMustHaveOneArtifact("xmlReaders"),
                         Assert.Throws <ArgumentException>(
                             () => StoreItemCollection.Create(new XmlReader[0], null, null, out errors)).Message);
        }
        public void StoreItemCollection_Create_factory_method_throws_for_null_readers()
        {
            IList <EdmSchemaError> errors;

            Assert.Equal("xmlReaders",
                         Assert.Throws <ArgumentNullException>(
                             () => StoreItemCollection.Create(null, null, null, out errors)).ParamName);
        }
        public void Can_get_ProviderInvariantName_from_StoreItemCollection_loaded_from_SSDL()
        {
            IList <EdmSchemaError> errors;
            var storeItemCollection =
                StoreItemCollection.Create(new[] { XDocument.Parse(Ssdl).CreateReader() }, null, null, out errors);

            Assert.Equal("System.Data.SqlClient", storeItemCollection.ProviderInvariantName);
        }
        public void StoreItemCollection_Create_factory_method_returns_StoreItemCollection_instance_for_valid_ssdl()
        {
            IList <EdmSchemaError> errors;
            var storeItemCollection = StoreItemCollection.Create(new[] { XDocument.Parse(Ssdl).CreateReader() }, null, null, out errors);

            Assert.NotNull(storeItemCollection);
            Assert.NotNull(storeItemCollection.GetItem <EntityType>("AdventureWorksModel.Store.Entities"));
            Assert.Equal(0, errors.Count);
        }
        public void StoreItemCollection_Create_factory_method_returns_null_and_errors_for_invalid_ssdl()
        {
            var invalidSsdl = XDocument.Parse(Ssdl);

            invalidSsdl
            .Descendants("{http://schemas.microsoft.com/ado/2009/11/edm/ssdl}EntityType")
            .Remove();

            IList <EdmSchemaError> errors;
            var storeItemCollection = StoreItemCollection.Create(new[] { invalidSsdl.CreateReader() }, null, null, out errors);

            Assert.Null(storeItemCollection);
            Assert.Equal(1, errors.Count);
            Assert.Contains("Entities", errors[0].Message);
        }