public void ClinicPrefHelper_GetClinicsWithChanges()
 {
     #region Test Setup
     //Set up clinics
     Prefs.UpdateBool(PrefName.EasyNoClinics, false);
     Clinic clinicA = ClinicT.CreateClinic();           //This clinic will always use defaults
     Clinic clinicB = ClinicT.CreateClinic();           //This clinic will start using defaults and then use its own values
     Clinic clinicC = ClinicT.CreateClinic();           //This clinic will always use its own values, which will not change
     Clinic clinicD = ClinicT.CreateClinic();           //This clinic will always use its own values, which will change
     Clinic clinicE = ClinicT.CreateClinic();           //This clinic will start using its own values, and then change to the defaults
     //Set up the baseline preferences
     //using EClipboard prefs because they are actually used as clinic prefs, but any pref could be used
     Prefs.UpdateBool(PrefName.EClipboardAllowSelfCheckIn, true);
     Prefs.UpdateBool(PrefName.EClipboardAllowSelfPortraitOnCheckIn, true);
     //Set up the clinic preferences
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfCheckIn, clinicC.ClinicNum, POut.Bool(false));
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfPortraitOnCheckIn, clinicC.ClinicNum, POut.Bool(false));
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfCheckIn, clinicD.ClinicNum, POut.Bool(false));
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfPortraitOnCheckIn, clinicD.ClinicNum, POut.Bool(false));
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfCheckIn, clinicE.ClinicNum, POut.Bool(false));
     ClinicPrefs.InsertPref(PrefName.EClipboardAllowSelfPortraitOnCheckIn, clinicE.ClinicNum, POut.Bool(false));
     ClinicPrefs.RefreshCache();
     //Set up the ClinicPrefHelper
     OpenDental.ClinicPrefHelper clinicPrefHelper = new OpenDental.ClinicPrefHelper(PrefName.EClipboardAllowSelfCheckIn, PrefName.EClipboardAllowSelfPortraitOnCheckIn);
     #endregion Test Setup
     #region Test Body
     //Make the changes to the preferences
     //Update one of the default preference values
     clinicPrefHelper.ValChangedByUser(PrefName.EClipboardAllowSelfCheckIn, 0, POut.Bool(false));
     //Update ClinicB to use one of its own values
     clinicPrefHelper.ValChangedByUser(PrefName.EClipboardAllowSelfPortraitOnCheckIn, clinicB.ClinicNum, POut.Bool(false));
     //Update clinicD to change its own values
     clinicPrefHelper.ValChangedByUser(PrefName.EClipboardAllowSelfCheckIn, clinicD.ClinicNum, POut.Bool(true));
     //Remove all clinicE prefs to indicate it should use the default
     clinicPrefHelper.ValChangedByUser(PrefName.EClipboardAllowSelfCheckIn, clinicE.ClinicNum, POut.Bool(clinicPrefHelper.GetDefaultBoolVal(PrefName.EClipboardAllowSelfCheckIn)));
     clinicPrefHelper.ValChangedByUser(PrefName.EClipboardAllowSelfPortraitOnCheckIn, clinicE.ClinicNum, POut.Bool(clinicPrefHelper.GetDefaultBoolVal(PrefName.EClipboardAllowSelfPortraitOnCheckIn)));
     #endregion Test Body
     #region Test Results
     //Test that GetClinicsWithChanges gets the right clinics for each EClipboardAllowSelfCheckIn
     List <long> listExpectedClinicNumsChanged_A = new List <long>()
     {
         0,                 //We changed the default preference
         clinicD.ClinicNum, //We changed this preference
         clinicE.ClinicNum  //We removed these preferences
     };
     List <long> results = clinicPrefHelper.GetClinicsWithChanges(PrefName.EClipboardAllowSelfCheckIn);
     Assert.AreEqual(3, results.Union(listExpectedClinicNumsChanged_A).Distinct().Count());
     //Test that GetClinicsWithChanges gets the right clinics for each EClipboardAllowSelfCheckIn
     List <long> listExpectedClinicNumsChanged_B = new List <long>()
     {
         clinicB.ClinicNum,                //We changed this preference
         clinicE.ClinicNum                 //We removed these preferences
     };
     results = clinicPrefHelper.GetClinicsWithChanges(PrefName.EClipboardAllowSelfPortraitOnCheckIn);
     Assert.AreEqual(2, results.Union(listExpectedClinicNumsChanged_B).Distinct().Count());
     #endregion Test Results
     #region Test Clean Up
     ClinicPrefs.Sync(new List <ClinicPref>(), ClinicPrefs.GetPrefAllClinics(PrefName.EClipboardAllowSelfCheckIn));
     ClinicPrefs.Sync(new List <ClinicPref>(), ClinicPrefs.GetPrefAllClinics(PrefName.EClipboardAllowSelfPortraitOnCheckIn));
     Clinics.Delete(clinicA);
     Clinics.Delete(clinicB);
     Clinics.Delete(clinicC);
     Clinics.Delete(clinicD);
     Clinics.Delete(clinicE);
     #endregion Test Clean Up
 }