public DatabaseWatcher ArrangeDatabaseWatcher()
        {
            DatabaseWatcher dataWatcher = new DatabaseWatcher(_watchId, _dataSource, _databaseName, _userId);

            dataWatcher.Start();

            return(dataWatcher);
        }
        public void DataWatcherTest()
        {
            //start a new databaseWatcher
            DatabaseWatcher dataWatcher = ArrangeDatabaseWatcher();


            //expect serviceBroker: on
            bool serviceBrokerOn = false;

            SqlConnection sqlConnection = CreateSqlConnection();
            SqlCommand    sqlCommand    = sqlConnection.CreateCommand();

            sqlCommand.CommandText = $"SELECT is_broker_enabled FROM sys.databases WHERE name = '{_databaseName}';";
            using (var reader = sqlCommand.ExecuteReader())
            {
                while (reader.Read())
                {
                    if (reader["is_broker_enabled"].ToString() == "True")
                    {
                        serviceBrokerOn = true;
                    }
                }
            }

            string       newDocumentId = GetInsertedDocumentID(sqlConnection); //insert a new value and get its id from the database
            MasterLogger m_logger      = CreateMasterLogger(sqlConnection, newDocumentId);

            string consolidatedLogFilePath = @"C:\Windows\Temp\consolidated log\consolidatedLog.log";

            Thread.Sleep(4000);
            FileStream   fs      = new FileStream(consolidatedLogFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            StreamReader sReader = new StreamReader(fs, Encoding.UTF8);
            string       line;
            string       lastLine = "";

            while ((line = sReader.ReadLine()) != null)
            {
                lastLine = line;
            }

            string expectedJsonString = JsonConvert.SerializeObject(m_logger);
            bool   newValueIsOnFile   = lastLine.Equals(expectedJsonString);

            CloseSqlConnection(sqlConnection);

            bool hasAllExpectedValue = serviceBrokerOn && newValueIsOnFile ? true : false;

            dataWatcher.Finish();
            Assert.AreEqual(true, hasAllExpectedValue);
        }