public void HangfireServer_Program_ConnectionString_Exists() { var args = new Args { ShowConsole = true, }; var implConfig = SetupHangfireImplementationConfigs(out var mockWriter, out var mockPauseHelper, out var mockExecutionLogPublisher); var dbSource = new DbSource { ConnectionString = "connectionString", }; var compressedExecuteMessage = new CompressedExecuteMessage(); var serializeToJsonString = dbSource.SerializeToJsonString(new DefaultSerializationBinder()); compressedExecuteMessage.SetMessage(serializeToJsonString); var mockSerializer = new Mock <IBuilderSerializer>(); var mockFile = new Mock <IFile>(); var mockDirectory = new Mock <IDirectory>(); var persistenceSettings = new PersistenceSettings("some path", mockFile.Object, mockDirectory.Object) { Enable = false, PersistenceDataSource = new NamedGuidWithEncryptedPayload { Name = "Data Source", Value = Guid.Empty, Payload = serializeToJsonString }, }; mockSerializer.Setup(o => o.Deserialize <DbSource>(persistenceSettings.PersistenceDataSource.Payload)).Returns(dbSource).Verifiable(); var mockContext = new HangfireContext(args); var mockEventWaitHandle = new Mock <IEventWaitHandle>(); mockEventWaitHandle.Setup(o => o.New()).Verifiable(); mockEventWaitHandle.Setup(o => o.WaitOne()).Verifiable(); var item = new Implementation(mockContext, implConfig, persistenceSettings, mockSerializer.Object, mockEventWaitHandle.Object); item.Run(); mockWriter.Verify(o => o.WriteLine("Starting Hangfire server..."), Times.Once); mockExecutionLogPublisher.Verify(o => o.Info("Starting Hangfire server..."), Times.Once); mockSerializer.Verify(o => o.Deserialize <DbSource>(persistenceSettings.PersistenceDataSource.Payload), Times.Once); mockWriter.Verify(o => o.WriteLine("Hangfire dashboard started..."), Times.Once); mockExecutionLogPublisher.Verify(o => o.Info("Hangfire dashboard started..."), Times.Once); mockWriter.Verify(o => o.WriteLine("Hangfire server started..."), Times.Once); mockExecutionLogPublisher.Verify(o => o.Info("Hangfire server started..."), Times.Once); mockPauseHelper.Verify(o => o.Pause(), Times.Never); mockEventWaitHandle.Verify(o => o.New(), Times.Never); mockEventWaitHandle.Verify(o => o.WaitOne(), Times.Never); }