public void TestAddFilesWithOwnAssembly() { PluginRepository testRepository = new PluginRepository(); Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddFiles(self.Location); Assert.AreEqual(1, testRepository.LoadedAssemblies.Count); }
/// <summary>Initializes the plugin using an existing repository</summary> /// <param name="employer">Employer used assess and employ the plugin types</param> /// <param name="repository">Repository in which plugins will be stored</param> public PluginHost(Employer employer, PluginRepository repository) { this.employer = employer; this.repository = repository; foreach(Assembly assembly in this.repository.LoadedAssemblies) { employAssemblyTypes(assembly); } this.repository.AssemblyLoaded += new AssemblyLoadEventHandler(assemblyLoadHandler); }
/// <summary>Initializes the plugin using an existing repository</summary> /// <param name="employer">Employer used assess and employ the plugin types</param> /// <param name="repository">Repository in which plugins will be stored</param> public PluginHost(Employer employer, PluginRepository repository) { this.employer = employer; this.repository = repository; foreach (Assembly assembly in this.repository.LoadedAssemblies) { employAssemblyTypes(assembly); } this.repository.AssemblyLoaded += new AssemblyLoadEventHandler(assemblyLoadHandler); }
public void TestAddAssembly() { PluginRepository testRepository = new PluginRepository(); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); Assert.AreEqual(1, testRepository.LoadedAssemblies.Count); }
/// <summary>Mocks a subscriber for the events of a plugin repository</summary> /// <param name="mockery">Mockery to create an event subscriber in</param> /// <param name="repository">Repository to subscribe the mocked subscriber to</param> /// <returns>The mocked event subscriber</returns> private static Mock <IAssemblyLoadedSubscriber> mockSubscriber( MockFactory mockery, PluginRepository repository ) { Mock <IAssemblyLoadedSubscriber> mockedSubscriber = mockery.CreateMock <IAssemblyLoadedSubscriber>(); repository.AssemblyLoaded += new AssemblyLoadEventHandler( mockedSubscriber.MockObject.AssemblyLoaded ); return(mockedSubscriber); }
public void TestAssemblyLoadingWithEmployFailure() { PluginRepository testRepository = new PluginRepository(); PluginHost testHost = new PluginHost(new FailingEmployer(), testRepository); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); Assert.AreSame(testRepository, testHost.Repository); }
/// <summary>Mocks a subscriber for the events of a plugin repository</summary> /// <param name="mockery">Mockery to create an event subscriber in</param> /// <param name="repository">Repository to subscribe the mocked subscriber to</param> /// <returns>The mocked event subscriber</returns> private static IAssemblyLoadedSubscriber mockSubscriber( Mockery mockery, PluginRepository repository ) { IAssemblyLoadedSubscriber mockedSubscriber = mockery.NewMock <IAssemblyLoadedSubscriber>(); repository.AssemblyLoaded += new AssemblyLoadEventHandler( mockedSubscriber.AssemblyLoaded ); return(mockedSubscriber); }
public void TestFullConstructorWithPreloadedAssembly() { PluginRepository testRepository = new PluginRepository(); FactoryEmployer<PluginRepository> testEmployer = new FactoryEmployer<PluginRepository>(); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); PluginHost testHost = new PluginHost(testEmployer, testRepository); Assert.AreSame(testEmployer, testHost.Employer); Assert.AreEqual(1, testEmployer.Factories.Count); }
public void TestAssemblyLoadingWithNoPluginAttribute() { PluginRepository testRepository = new PluginRepository(); FactoryEmployer <PluginHostTest> testEmployer = new FactoryEmployer <PluginHostTest>(); PluginHost testHost = new PluginHost(testEmployer, testRepository); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); Assert.AreSame(testRepository, testHost.Repository); Assert.AreEqual(0, testEmployer.Factories.Count); }
public void TestAssemblyLoadedEvent() { Mockery mockery = new Mockery(); PluginRepository testRepository = new PluginRepository(); IAssemblyLoadedSubscriber subscriber = mockSubscriber(mockery, testRepository); Expect.Once.On(subscriber).Method("AssemblyLoaded").WithAnyArguments(); Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestAssemblyLoadedEvent() { MockFactory mockery = new MockFactory(); PluginRepository testRepository = new PluginRepository(); Mock <IAssemblyLoadedSubscriber> subscriber = mockSubscriber(mockery, testRepository); subscriber.Expects.One.Method(m => m.AssemblyLoaded(null, null)).WithAnyArguments(); Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); mockery.VerifyAllExpectationsHaveBeenMet(); }
public void TestFullConstructorWithPreloadedAssembly() { PluginRepository testRepository = new PluginRepository(); FactoryEmployer <PluginRepository> testEmployer = new FactoryEmployer <PluginRepository>(); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); PluginHost testHost = new PluginHost(testEmployer, testRepository); Assert.AreSame(testEmployer, testHost.Employer); Assert.AreEqual(1, testEmployer.Factories.Count); }
public void TestAddFilesWithZeroMatches() { PluginRepository testRepository = new PluginRepository(); testRepository.AddFiles(Guid.NewGuid().ToString()); }
public void TestEmployerStorage() { PluginRepository testRepository = new PluginRepository(); FactoryEmployer<PluginRepository> testEmployer = new FactoryEmployer<PluginRepository>(); PluginHost testHost = new PluginHost(testEmployer, testRepository); Assert.AreSame(testEmployer, testHost.Employer); }
/// <summary>Mocks a subscriber for the events of a plugin repository</summary> /// <param name="mockery">Mockery to create an event subscriber in</param> /// <param name="repository">Repository to subscribe the mocked subscriber to</param> /// <returns>The mocked event subscriber</returns> private static IAssemblyLoadedSubscriber mockSubscriber( Mockery mockery, PluginRepository repository ) { IAssemblyLoadedSubscriber mockedSubscriber = mockery.NewMock<IAssemblyLoadedSubscriber>(); repository.AssemblyLoaded += new AssemblyLoadEventHandler( mockedSubscriber.AssemblyLoaded ); return mockedSubscriber; }
public void TestAssemblyLoadingWithNoPluginAttribute() { PluginRepository testRepository = new PluginRepository(); FactoryEmployer<PluginHostTest> testEmployer = new FactoryEmployer<PluginHostTest>(); PluginHost testHost = new PluginHost(testEmployer, testRepository); // Might also use Assembly.GetCallingAssembly() here, but this leads to the exe of // the unit testing tool Assembly self = Assembly.GetAssembly(GetType()); testRepository.AddAssembly(self); Assert.AreSame(testRepository, testHost.Repository); Assert.AreEqual(0, testEmployer.Factories.Count); }