diff --git a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/src/InDetEtaDependentCutsSvc.cxx b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/src/InDetEtaDependentCutsSvc.cxx
index 69fddc30421d0b8e729e9709f757706207a5afdb..7b6bd2af7e660161e6909c53c29536c480c3fc7d 100644
--- a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/src/InDetEtaDependentCutsSvc.cxx
+++ b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/src/InDetEtaDependentCutsSvc.cxx
@@ -42,10 +42,9 @@ namespace InDet {
     ///////////////
     // Initialize
     ///////////////
-    StatusCode InDetEtaDependentCutsSvc::initialize() {
-      
-      ATH_MSG_INFO ("Initializing " << name() << "...");
-      
+    StatusCode 
+    InDetEtaDependentCutsSvc::initialize() {
+      ATH_MSG_DEBUG ("Initializing " << name() << "...");
       if ((m_etaBins.size()-1) <= 0) {
         ATH_MSG_ERROR( "Wrong initialisation of eta bins. Check the eta bin values in " << name() );
         return StatusCode::FAILURE;
diff --git a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx
index 1d3897f11f0fcc85b814ba3f40c7534481cb8350..80f38b69790f6668803933e6343b4360640c9f1e 100644
--- a/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx
+++ b/InnerDetector/InDetRecTools/InDetEtaDependentCuts/test/InDetEtaDependentCutsSvc_test.cxx
@@ -25,6 +25,8 @@
 #include "CxxUtils/checker_macros.h"
 ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This is unit test and a static variable is used in IDEDC_GaudiFixtureBase.
 
+namespace utf = boost::unit_test;
+
 static const std::string testJobOptionsFile("InDetEtaDependentCutsTestJobOpts.txt");
 
 struct GaudiKernelFixture:public IDEDC_GaudiFixtureBase{
@@ -38,22 +40,73 @@ using namespace InDet;
 BOOST_AUTO_TEST_SUITE(EtaDependentCutsSvcTest)
   const GaudiKernelFixture g(testJobOptionsFile);
   const auto & svcLoc=g.svcLoc;
- 
-   BOOST_AUTO_TEST_CASE( sanityCheck ){
-     const bool svcLocatorIsOk=(svcLoc != nullptr);
-     BOOST_TEST(svcLocatorIsOk);
-   }
-   BOOST_AUTO_TEST_CASE( retrieveSvc ){
-     ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
-     BOOST_TEST (idEDCSvc.retrieve().isSuccess());
-   }
-   BOOST_AUTO_TEST_CASE( interfaceID ){
-     ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
-     InterfaceID testId("IInDetEtaDependentCutsSvc",1,0);
-     BOOST_TEST(idEDCSvc->interfaceID()==testId);
-   }
-   BOOST_AUTO_TEST_CASE(publicMethods){
-     ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
-     BOOST_TEST(idEDCSvc->getMaxEta() == 4.0);
-   }
+
+  BOOST_AUTO_TEST_CASE( sanityCheck ){
+    const bool svcLocatorIsOk=(svcLoc != nullptr);
+    BOOST_TEST(svcLocatorIsOk);
+  }
+  BOOST_AUTO_TEST_CASE( retrieveSvc ){
+    ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
+    BOOST_TEST (idEDCSvc.retrieve().isSuccess());
+  }
+  BOOST_AUTO_TEST_CASE( interfaceID ){
+    InterfaceID testId("IInDetEtaDependentCutsSvc",1,0);
+    ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
+    BOOST_TEST(idEDCSvc->interfaceID()==testId);
+  }
+  
+  //two failures related to use of template getValue() with the eta argument
+  BOOST_AUTO_TEST_CASE(publicMethods, * utf::expected_failures(2)){
+    ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
+    //for default constructed service, and choosing a nominal (valid) eta
+    const double eta=2.0;
+    const double invalidEta{9.0};
+    //double  getMaxEta()
+    BOOST_TEST(idEDCSvc->getMaxEta() == 4.0); 
+    //double  getMinPtAtEta           (const double eta)
+    BOOST_TEST(idEDCSvc->getMinPtAtEta(eta) == 900.);
+    //check it throws if eta is out of bounds (will also print error)
+    BOOST_CHECK_THROW(idEDCSvc->getMinPtAtEta(invalidEta), std::out_of_range);
+    //double  getMaxZImpactAtEta      (const double eta)
+    BOOST_TEST(idEDCSvc->getMaxZImpactAtEta(eta) == 200.);
+    //double  getMaxPrimaryImpactAtEta(const double eta);
+    BOOST_TEST(idEDCSvc->getMaxPrimaryImpactAtEta(eta) == 2.0);
+    //int     getMinSiHitsAtEta       (const double eta);
+    BOOST_TEST(idEDCSvc->getMinSiHitsAtEta(eta) == 9);
+    //int     getMinSiNotSharedAtEta  (const double eta);
+    BOOST_TEST(idEDCSvc->getMinSiNotSharedAtEta(eta) == 7);
+    //int     getMaxSharedAtEta       (const double eta);
+    BOOST_TEST(idEDCSvc->getMaxSharedAtEta(eta) == 2);
+    //int     getMinPixelHitsAtEta    (const double eta);
+    BOOST_TEST(idEDCSvc->getMinPixelHitsAtEta(eta) == 1);
+    //int     getMaxSiHolesAtEta      (const double eta);
+    BOOST_TEST(idEDCSvc->getMaxSiHolesAtEta(eta) == 2);
+    //int     getMaxPixelHolesAtEta   (const double eta);
+    BOOST_TEST(idEDCSvc->getMaxPixelHolesAtEta(eta) == 1);
+    //int     getMaxSctHolesAtEta     (const double eta);
+    BOOST_TEST(idEDCSvc->getMaxSctHolesAtEta(eta) == 2);
+    //int     getMaxDoubleHolesAtEta  (const double eta) const override final;
+    BOOST_TEST(idEDCSvc->getMaxDoubleHolesAtEta(eta) == 1);
+    //return values on argument-changing methods
+    std::vector<int> intCutReturnValue{};
+    std::vector<double> doubleCutReturnValue{};
+    const auto dblCutEnum = InDet::CutName::etaWidthBrem;
+    const auto intCutEnum = InDet::CutName::minClusters;
+    //
+    BOOST_CHECK_NO_THROW(idEDCSvc->getValue(dblCutEnum, doubleCutReturnValue));
+    BOOST_TEST(doubleCutReturnValue.at(0) == 0.2); //only has one entry by default
+    BOOST_CHECK_NO_THROW(idEDCSvc->getValue(intCutEnum, intCutReturnValue));
+    BOOST_TEST(intCutReturnValue.at(0) == 9); //only has one entry by default
+    //try to return an integer cut from a double enum  index (will print an ERROR message)
+    BOOST_CHECK_NO_THROW(idEDCSvc->getValue(dblCutEnum, intCutReturnValue));//doesn't throw
+    //
+    BOOST_TEST(intCutReturnValue.at(0) == 9);//i.e. should remain unchanged
+    //something wrong here, needs fixing in the code?
+    double etaBinCut{1.};
+    // T getValueAtEta(const std::vector< T > cuts, const double eta)
+    BOOST_CHECK_NO_THROW(idEDCSvc->getValue(InDet::CutName::etaBins, etaBinCut, eta));
+    BOOST_TEST( etaBinCut == 0.0); //failure
+    BOOST_CHECK_THROW(idEDCSvc->getValue(InDet::CutName::etaBins, etaBinCut, invalidEta), std::out_of_range); //failure
+    
+  }
 BOOST_AUTO_TEST_SUITE_END()