tdf#45904 Move XNameContainer Java tests to C++

Move XNameContainer Java tests to C++ for ScStyleFamilyObj.

Change-Id: I8ff465262258ef5277d470369cc05f48bba25ce4
Reviewed-on: https://gerrit.libreoffice.org/69029
Tested-by: Jenkins
Reviewed-by: Jens Carl <j.carl43@gmx.de>
diff --git a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamilyObj.csv b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamilyObj.csv
index 4c5519b..10e3d65 100644
--- a/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamilyObj.csv
+++ b/qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamilyObj.csv
@@ -1,3 +1 @@
"ScStyleFamilyObj";"com::sun::star::container::XNameReplace#optional";"replaceByName()"
"ScStyleFamilyObj";"com::sun::star::container::XNameContainer#optional";"insertByName()"
"ScStyleFamilyObj";"com::sun::star::container::XNameContainer#optional";"removeByName()"
diff --git a/sc/qa/extras/scstylefamilyobj.cxx b/sc/qa/extras/scstylefamilyobj.cxx
index c9df85f..2ca381c 100644
--- a/sc/qa/extras/scstylefamilyobj.cxx
+++ b/sc/qa/extras/scstylefamilyobj.cxx
@@ -11,6 +11,7 @@
#include <test/container/xelementaccess.hxx>
#include <test/container/xindexaccess.hxx>
#include <test/container/xnameaccess.hxx>
#include <test/container/xnamecontainer.hxx>
#include <cppu/unotype.hxx>

#include <com/sun/star/container/XIndexAccess.hpp>
@@ -32,7 +33,8 @@
class ScStyleFamilyObj : public CalcUnoApiTest,
                         public apitest::XElementAccess,
                         public apitest::XIndexAccess,
                         public apitest::XNameAccess
                         public apitest::XNameAccess,
                         public apitest::XNameContainer
{
public:
    ScStyleFamilyObj();
@@ -56,6 +58,13 @@
    CPPUNIT_TEST(testGetElementNames);
    CPPUNIT_TEST(testHasByName);

    // XNameContainer
    CPPUNIT_TEST(testInsertByName);
    CPPUNIT_TEST(testInsertByNameDuplicate);
    CPPUNIT_TEST(testInsertByNameEmptyName);
    CPPUNIT_TEST(testRemoveByName);
    CPPUNIT_TEST(testRemoveByNameNoneExistingElement);

    CPPUNIT_TEST_SUITE_END();

private:
@@ -67,6 +76,7 @@
    , XElementAccess(cppu::UnoType<style::XStyle>::get())
    , XIndexAccess(19)
    , XNameAccess("Default")
    , XNameContainer("Default")
{
}

@@ -82,6 +92,8 @@
    uno::Reference<lang::XMultiServiceFactory> xMSF(m_xComponent, uno::UNO_QUERY_THROW);
    uno::Reference<uno::XInterface> xCS(xMSF->createInstance("com.sun.star.style.CellStyle"),
                                        uno::UNO_QUERY_THROW);
    // XNameContainer
    setElement(uno::makeAny(xMSF->createInstance("com.sun.star.style.CellStyle")));

    uno::Reference<container::XNameContainer> xNC(xNA_SF, uno::UNO_QUERY_THROW);
    xNC->insertByName("ScStyleFamilyObj", uno::makeAny(xCS));
diff --git a/test/source/container/xnamecontainer.cxx b/test/source/container/xnamecontainer.cxx
index c871deb..e5e8d8d 100644
--- a/test/source/container/xnamecontainer.cxx
+++ b/test/source/container/xnamecontainer.cxx
@@ -56,13 +56,24 @@
{
    uno::Reference<container::XNameContainer> xNameContainer(init(), uno::UNO_QUERY_THROW);

    uno::Any aAny;
    CPPUNIT_ASSERT(!xNameContainer->hasByName(m_aName));
    xNameContainer->insertByName(m_aName, aAny);
    CPPUNIT_ASSERT(xNameContainer->hasByName(m_aName));
    CPPUNIT_ASSERT(!xNameContainer->hasByName(m_aName + "Duplicate"));
    xNameContainer->insertByName(m_aName + "Duplicate", m_aElement);
    CPPUNIT_ASSERT(xNameContainer->hasByName(m_aName + "Duplicate"));

    CPPUNIT_ASSERT_THROW(xNameContainer->insertByName(m_aName, aAny),
                         container::ElementExistException);
    bool bExceptionThrown = false;
    try
    {
        xNameContainer->insertByName(m_aName + "Duplicate", m_aElement);
    }
    catch (const container::ElementExistException&)
    {
        bExceptionThrown = true;
    }
    catch (const lang::IllegalArgumentException&)
    {
        bExceptionThrown = true;
    }
    CPPUNIT_ASSERT(bExceptionThrown);
}

void XNameContainer::testRemoveByName()