public void ScheduledJobsWorkerConfigurationLoaderInitialiseWithConfigSectionSucceeds() { // Arrange var username = "******"; var password = "******"; var domain = "arbitrary-domain"; var appclusiveCredentialSection = new AppclusiveCredentialSection(); appclusiveCredentialSection.Username = username; appclusiveCredentialSection.Password = password; appclusiveCredentialSection.Domain = domain; Mock.SetupStatic(typeof(ConfigurationManager)); Mock.Arrange(() => ConfigurationManager.GetSection(Arg.Is<string>(AppclusiveCredentialSection.SECTION_NAME))) .Returns(appclusiveCredentialSection) .MustBeCalled(); Mock.Arrange(() => ConfigurationManager.AppSettings["ExtensionsFolder"]) .IgnoreInstance() .Returns("..\\..\\..\\biz.dfch.CS.Appclusive.Scheduler.Extensions\\bin\\Debug"); Mock.Arrange(() => ConfigurationManager.AppSettings["PluginTypes"]) .IgnoreInstance() .Returns("*"); Mock.Arrange(() => ConfigurationManager.AppSettings["UpdateIntervalMinutes"]) .IgnoreInstance() .Returns("0"); Mock.Arrange(() => ConfigurationManager.AppSettings["ServerNotReachableRetries"]) .IgnoreInstance() .Returns("0"); var uri = "http://www.example.com/arbitrary-path/"; var mgmtUriName = "arbitrary-management-uri-name"; string[] args = { uri, mgmtUriName }; var sut = new ScheduledJobsWorkerConfigurationLoader(); // Act // sut.Initialise() is implicitly called by ScheduledJobsWorkerConfiguration var config = new ScheduledJobsWorkerConfiguration(sut, args); // Assert Mock.Assert(() => ConfigurationManager.GetSection(Arg.Is<string>(AppclusiveCredentialSection.SECTION_NAME))); Assert.AreEqual(uri, config.Uri.AbsoluteUri); Assert.AreEqual(mgmtUriName, config.ManagementUriName); Assert.AreEqual(username, config.Credential.UserName); Assert.AreEqual(password, config.Credential.Password); Assert.AreEqual(domain, config.Credential.Domain); }
public void TestInitialize() { var loader = new ScheduledJobsWorkerConfigurationLoader(); configuration = Mock.Create<ScheduledJobsWorkerConfiguration>(Constructor.Mocked); Mock.Arrange(() => configuration.Logger).IgnoreInstance().Returns(new Logger()); Mock.Arrange(() => configuration.Uri).IgnoreInstance().Returns(new Uri("http://www.example.com/arbitrary-folder")); Mock.Arrange(() => configuration.ManagementUriName).IgnoreInstance().Returns("ManagementUriName"); Mock.Arrange(() => configuration.ManagementUriType).IgnoreInstance().Returns("ManagementUriName"); Mock.Arrange(() => configuration.ServerNotReachableRetries).IgnoreInstance().Returns(5); Mock.Arrange(() => configuration.UpdateIntervalInMinutes).IgnoreInstance().Returns(1); Mock.Arrange(() => configuration.IsValid()).IgnoreInstance().Returns(true); var timer = Mock.Create<ScheduledJobsWorkerTimerFactory>(); Mock.Arrange(() => timer.CreateTimer(Arg.IsAny<TimerCallback>(), Arg.IsAny<object>(), Arg.IsAny<int>(), Arg.IsAny<int>())) .IgnoreInstance() .Returns(default(Timer)); }
public void ScheduledJobsWorkerConfigurationLoaderWithoutConfigSectionInitialiseSucceeds() { // Arrange Mock.SetupStatic(typeof(ConfigurationManager)); Mock.Arrange(() => ConfigurationManager.GetSection(Arg.Is<string>(AppclusiveCredentialSection.SECTION_NAME))) .Returns(default(object)) .MustBeCalled(); Mock.Arrange(() => ConfigurationManager.AppSettings["ExtensionsFolder"]) .IgnoreInstance() .Returns("..\\..\\..\\biz.dfch.CS.Appclusive.Scheduler.Extensions\\bin\\Debug"); Mock.Arrange(() => ConfigurationManager.AppSettings["PluginTypes"]) .IgnoreInstance() .Returns("*"); Mock.Arrange(() => ConfigurationManager.AppSettings["UpdateIntervalMinutes"]) .IgnoreInstance() .Returns("0"); Mock.Arrange(() => ConfigurationManager.AppSettings["ServerNotReachableRetries"]) .IgnoreInstance() .Returns("0"); var uri = "http://www.example.com/arbitrary-path/"; var mgmtUriName = "arbitrary-management-uri-name"; string[] args = { uri, mgmtUriName }; var sut = new ScheduledJobsWorkerConfigurationLoader(); // Act // sut.Initialise() is implicitly called by ScheduledJobsWorkerConfiguration var config = new ScheduledJobsWorkerConfiguration(sut, args); // Assert Mock.Assert(() => ConfigurationManager.GetSection(Arg.Is<string>(AppclusiveCredentialSection.SECTION_NAME))); Assert.AreEqual(uri, config.Uri.AbsoluteUri); Assert.AreEqual(mgmtUriName, config.ManagementUriName); Assert.AreEqual(System.Net.CredentialCache.DefaultNetworkCredentials, config.Credential); }
public void InitialiseWithValidConfigurationSucceeds() { // Arrange Mock.SetupStatic(typeof(ConfigurationManager)); Mock.Arrange(() => ConfigurationManager.AppSettings["UpdateIntervalMinutes"]) .Returns("5"); Mock.Arrange(() => ConfigurationManager.AppSettings["ServerNotReachableRetries"]) .Returns("5"); Mock.Arrange(() => ConfigurationManager.AppSettings["ManagementUri"]) .Returns("ManagementUri"); Mock.Arrange(() => ConfigurationManager.AppSettings["Uri"]) .Returns("http://www.example.com/arbitrary-path/"); var plugin = Mock.Create<Lazy<IAppclusivePlugin, IAppclusivePluginData>>(); var plugins = new List<Lazy<IAppclusivePlugin, IAppclusivePluginData>>(); plugins.Add(plugin); var pluginLoader = Mock.Create<PluginLoader>(Constructor.Mocked); Mock.Arrange(() => pluginLoader.InitialiseAndLoad()) .IgnoreInstance() .Returns(plugins); var configuration = Mock.Create<ScheduledJobsWorkerConfiguration>(Constructor.NotMocked); Mock.Arrange(() => configuration.ManagementUriType) .IgnoreInstance() .Returns("ManagementUriType"); Mock.Arrange(() => configuration.Uri) .IgnoreInstance() .Returns(new Uri("http://www.example.com/arbitrary-path/")); Mock.Arrange(() => configuration.IsValid()) .IgnoreInstance() .Returns(true); var parameters = new DictionaryParameters(); var sut = new ScheduledJobsWorkerConfigurationLoader(); // Act sut.Initialise(configuration, parameters); // Assert // N/A }
public void InitialiseWithInvalidConfigurationThrowsContractException() { var configuration = Mock.Create<ScheduledJobsWorkerConfiguration>(); var parameters = new DictionaryParameters(); var sut = new ScheduledJobsWorkerConfigurationLoader(); sut.Initialise(configuration, parameters); }