public void LogError_delegates_to_the_loader_session()
            {
                var mockLogger = new Mock <LoadMessageLogger>(null);

                mockLogger
                .Setup(m => m.CreateErrorMessageWithTypeSpecificLoadLogs(It.IsAny <string>(), It.IsAny <EdmType>()))
                .Returns("The Message");

                var mockSession = new Mock <ObjectItemLoadingSessionData>();

                mockSession.Setup(m => m.LoadMessageLogger).Returns(mockLogger.Object);
                var edmItemErrors = new List <EdmItemError>();

                mockSession.Setup(m => m.EdmItemErrors).Returns(edmItemErrors);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);

                factory.LogError("Cheese", entityType);

                mockLogger.Verify(m => m.CreateErrorMessageWithTypeSpecificLoadLogs("Cheese", entityType));

                Assert.Equal("The Message", edmItemErrors.Select(e => e.Message).Single());
            }
            public void ReferenceResolutions_delegates_to_the_loader()
            {
                var loader  = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, new ObjectItemLoadingSessionData());
                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                Assert.NotNull(factory.ReferenceResolutions);
                Assert.Same(factory.ReferenceResolutions, factory.ReferenceResolutions);
            }
            public void ReferenceResolutions_delegates_to_the_loader()
            {
                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, new ObjectItemLoadingSessionData());
                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                Assert.NotNull(factory.ReferenceResolutions);
                Assert.Same(factory.ReferenceResolutions, factory.ReferenceResolutions);
            }
 internal ObjectItemConventionAssemblyLoader(
     Assembly assembly,
     ObjectItemLoadingSessionData sessionData)
     : base(assembly, (AssemblyCacheEntry) new MutableAssemblyCacheEntry(), sessionData)
 {
     this.SessionData.RegisterForLevel1PostSessionProcessing((ObjectItemAssemblyLoader)this);
     this._factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(this);
 }
            public void TrackClosure_delegates_to_the_loader()
            {
                var mockLoader = new Mock <ObjectItemConventionAssemblyLoader>(typeof(object).Assembly, new ObjectItemLoadingSessionData());
                var factory    = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(mockLoader.Object);

                factory.TrackClosure(typeof(Random));

                mockLoader.Verify(m => m.TrackClosure(typeof(Random)));
            }
            public void TrackClosure_delegates_to_the_loader()
            {
                var mockLoader = new Mock<ObjectItemConventionAssemblyLoader>(typeof(object).Assembly, new ObjectItemLoadingSessionData());
                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(mockLoader.Object);

                factory.TrackClosure(typeof(Random));

                mockLoader.Verify(m => m.TrackClosure(typeof(Random)));
            }
            public void LoadedTypes_delegates_to_loader_session()
            {
                var mockSession = new Mock<ObjectItemLoadingSessionData>();
                var dictionary = new Dictionary<string, EdmType>();
                mockSession.Setup(m => m.TypesInLoading).Returns(dictionary);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly(), mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                Assert.Same(dictionary, factory.LoadedTypes);
            }
            public void AddToTypesInAssembly_delegates_to_the_loader_cache_entry()
            {
                var mockLoader = new Mock<ObjectItemConventionAssemblyLoader>(typeof(object).Assembly(), new ObjectItemLoadingSessionData());
                var cacheEntry = new MutableAssemblyCacheEntry();
                mockLoader.Setup(m => m.CacheEntry).Returns(cacheEntry);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(mockLoader.Object);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);
                factory.AddToTypesInAssembly(entityType);

                Assert.Same(entityType, cacheEntry.TypesInAssembly.Single());
            }
            public void LoadedTypes_delegates_to_loader_session()
            {
                var mockSession = new Mock <ObjectItemLoadingSessionData>();
                var dictionary  = new Dictionary <string, EdmType>();

                mockSession.Setup(m => m.TypesInLoading).Returns(dictionary);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                Assert.Same(dictionary, factory.LoadedTypes);
            }
            public void AddToTypesInAssembly_delegates_to_the_loader_cache_entry()
            {
                var mockLoader = new Mock <ObjectItemConventionAssemblyLoader>(typeof(object).Assembly, new ObjectItemLoadingSessionData());
                var cacheEntry = new MutableAssemblyCacheEntry();

                mockLoader.Setup(m => m.CacheEntry).Returns(cacheEntry);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(mockLoader.Object);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);

                factory.AddToTypesInAssembly(entityType);

                Assert.Same(entityType, cacheEntry.TypesInAssembly.Single());
            }
            public void LogLoadMessage_delegates_to_the_loader_session()
            {
                var mockLogger = new Mock<LoadMessageLogger>(null);

                var mockSession = new Mock<ObjectItemLoadingSessionData>();
                mockSession.Setup(m => m.LoadMessageLogger).Returns(mockLogger.Object);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);
                factory.LogLoadMessage("Cheese", entityType);

                mockLogger.Verify(m => m.LogLoadMessage("Cheese", entityType));
            }
            public void LogLoadMessage_delegates_to_the_loader_session()
            {
                var mockLogger = new Mock <LoadMessageLogger>(null);

                var mockSession = new Mock <ObjectItemLoadingSessionData>();

                mockSession.Setup(m => m.LoadMessageLogger).Returns(mockLogger.Object);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly, mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);

                factory.LogLoadMessage("Cheese", entityType);

                mockLogger.Verify(m => m.LogLoadMessage("Cheese", entityType));
            }
            public void LogError_delegates_to_the_loader_session()
            {
                var mockLogger = new Mock<LoadMessageLogger>(null);
                mockLogger
                    .Setup(m => m.CreateErrorMessageWithTypeSpecificLoadLogs(It.IsAny<string>(), It.IsAny<EdmType>()))
                    .Returns("The Message");

                var mockSession = new Mock<ObjectItemLoadingSessionData>();
                mockSession.Setup(m => m.LoadMessageLogger).Returns(mockLogger.Object);
                var edmItemErrors = new List<EdmItemError>();
                mockSession.Setup(m => m.EdmItemErrors).Returns(edmItemErrors);

                var loader = new ObjectItemConventionAssemblyLoader(typeof(object).Assembly(), mockSession.Object);

                var factory = new ObjectItemConventionAssemblyLoader.ConventionOSpaceTypeFactory(loader);

                var entityType = new EntityType("E", "N", DataSpace.CSpace);
                factory.LogError("Cheese", entityType);

                mockLogger.Verify(m => m.CreateErrorMessageWithTypeSpecificLoadLogs("Cheese", entityType));

                Assert.Equal("The Message", edmItemErrors.Select(e => e.Message).Single());
            }