I'm trying to implement tests but I found a problem to set all the needed
parameters to the CMIS Repository Connector that needs: an username, a
password and the endpoint (url).
I need to know how to create the configuration nodes for the connector, in
the connector code I managed the configuration parameters in this way in the
processConfigurationPost method:
public String processConfigurationPost(IThreadContext threadContext,
> IPostParameters variableContext, ConfigParams parameters)
> throws ManifoldCFException {
> String username = variableContext.getParameter(CONFIG_PARAM_USERNAME);
> if (StringUtils.isNotEmpty(username))
> parameters.setParameter(CONFIG_PARAM_USERNAME, username);
> String password = variableContext.getParameter(CONFIG_PARAM_PASSWORD);
> if (StringUtils.isNotEmpty(password))
> parameters.setParameter(CONFIG_PARAM_PASSWORD, password);
> String endpoint = variableContext.getParameter(CONFIG_PARAM_ENDPOINT);
> if (StringUtils.isNotEmpty(endpoint) && endpoint.length() > 0)
> parameters.setParameter(CONFIG_PARAM_ENDPOINT, endpoint);
> String repositoryId = variableContext
> .getParameter(CONFIG_PARAM_REPOSITORY_ID);
> if (StringUtils.isNotEmpty(repositoryId))
> parameters.setParameter(CONFIG_PARAM_REPOSITORY_ID, repositoryId);
> return null;
> }
Now I have to setup the same parameters inside my test class APISanityTest
that doesn't like the following snippet, it works only if CMIS parameters
are commented as the following:
@Test
> public void sanityCheck()
> throws Exception
> {
> try
> {
> // Hey, we were able to install the file system connector etc.
> // Now, create a local test job and run it.
> IThreadContext tc = ThreadContextFactory.make();
> int i;
> IJobManager jobManager = JobManagerFactory.make(tc);
> // Create a basic file system connection, and save it.
> ConfigurationNode connectionObject;
> ConfigurationNode child;
> Configuration requestObject;
> Configuration result;
>
> connectionObject = new ConfigurationNode("repositoryconnection");
>
> child = new ConfigurationNode("name");
> child.setValue("CMIS Connection");
> connectionObject.addChild(connectionObject.getChildCount(),child);
>
> child = new ConfigurationNode("class_name");
> child.setValue(
> "org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector");
> connectionObject.addChild(connectionObject.getChildCount(),child);
>
> child = new ConfigurationNode("description");
> child.setValue("CMIS Connection");
> connectionObject.addChild(connectionObject.getChildCount(),child);
> child = new ConfigurationNode("max_connections");
> child.setValue("10");
> connectionObject.addChild(connectionObject.getChildCount(),child);
>
> //setting the CMIS specific parameters
> // child = new ConfigurationNode("username");
> // child.setValue(CMIS_USERNAME);
> // connectionObject.addChild(connectionObject.getChildCount(),child);
> //
> // child = new ConfigurationNode("password");
> // child.setValue(CMIS_PASSWORD);
> // connectionObject.addChild(connectionObject.getChildCount(),child);
> //
> // child = new ConfigurationNode("endpoint");
> // child.setValue(CMIS_ENDPOINT_TEST_SERVER);
> // connectionObject.addChild(connectionObject.getChildCount(),child);
> requestObject = new Configuration();
> requestObject.addChild(0,connectionObject);
>
> result = performAPIPutOperationViaNodes(
> "repositoryconnections/CMIS%20Connection",201,requestObject);
How can I set the username, password and endpoint for the CMIS Repository
Connector parameters in this test class?
Thank you.
Piergiorgio
2011/8/2 Karl Wright <[email protected]>
> Thanks for the status report. I hope to see your patch soon!
>
> Also, FWIW, once the documentation is also done I'd like to consider
> solidifying the 0.3 release. It's got a lot of good stuff in it and I
> think as soon as we've finished off the new CMIS connector in all
> dimensions we should go ahead. Thoughts, anyone?
>
> Karl
>
>
> On Tue, Aug 2, 2011 at 5:00 AM, Piergiorgio Lucidi
> <[email protected]> wrote:
> > Yesterday I started to work on end-to-end integration test for the CMIS
> > Connector and now I have a full running OpenCMIS test server integrated
> with
> > the ManifoldCF Maven build process.
> >
> > Now I have to implement:
> > - a setup method to create the test documents in the CMIS server
> > - a null output connector using the ManifoldCF api
> > - tests using the ManifoldCF api to create a mock configuration against
> the
> > test CMIS server
> >
> > I'll let you know when it works.
> >
> > Regards,
> > Piergiorgio
> >
> > 2011/7/29 Piergiorgio Lucidi <[email protected]>
> >
> >> Hi Karl,
> >>
> >> thank you for the details and as soon as I finish a first version of
> >> integration and/or unit test I will create a new ticket in the CMIS
> >> Component to release the patch.
> >>
> >> I hope to release this new patch soon.
> >> I'll let you know during the next week.
> >>
> >> Piergiorgio
> >>
> >>
> >> 2011/7/28 Karl Wright <[email protected]>
> >>
> >>> The tests/filesystem/src/test/java area are end-to-end tests
> >>> principally designed to test the filesystem connector. (They also
> >>> involve other connectors because, obviously, an end-to-end test is not
> >>> going going to work without them. This is why they are at the root
> >>> level.)
> >>>
> >>> There are also unit tests you can use as models under
> >>> connectors/filesystem/connector/src/test/.... These tests use only
> >>> the filesystem connector, no others.
> >>>
> >>> If you would be so kind as to create a ticket to cover your test work,
> >>> that would be great.
> >>>
> >>> Also, another workitem I've been meaning to get to but haven't
> >>> involves the conversion of a python-based HTML browser and Javascript
> >>> engine I wrote for MetaCarta into a Java equivalent. This would allow
> >>> direct testing of the UI components of the framework and connectors.
> >>> The python sources are in:
> >>>
> >>> legacy-tests/VirtualBrowser.py
> >>> and
> >>> legacy-tests/Javascript.py
> >>>
> >>> You may not have time to get that far for a while, but I thought you'd
> >>> want to know where my thoughts were headed. ;-)
> >>>
> >>> Karl
> >>>
> >>> On Thu, Jul 28, 2011 at 2:03 PM, Piergiorgio Lucidi
> >>> <[email protected]> wrote:
> >>> > I'm starting to think a way to implement tests for the CMIS
> Connector,
> >>> > probably I can use the Apache Chemistry (OpenCMIS) local binding to
> >>> create a
> >>> > mock of a CMIS Server (an InMemory repository), but I have to check
> this
> >>> > possibility because I'm not sure that all the features are now
> >>> implemented.
> >>> >
> >>> > Anyway I saw some test classes for the filesystem connector at the
> >>> following
> >>> > package:
> >>> >
> >>> > tests/filesystem/src/test/java
> >>> >
> >>> > Could you please confirm that these classes could be taken as an
> example
> >>> for
> >>> > tests?
> >>> > Or do I need to take a look at other classes?
> >>> >
> >>> > Thank you.
> >>> > Piergiorgio
> >>> >
> >>> > --
> >>> > Piergiorgio Lucidi
> >>> > Web: http://about.me/piergiorgiolucidi
> >>> >
> >>>
> >>
> >>
> >>
> >> --
> >> Piergiorgio Lucidi
> >> Web: http://about.me/piergiorgiolucidi
> >>
> >>
> >
> >
> > --
> > Piergiorgio Lucidi
> > Web: http://about.me/piergiorgiolucidi
> >
>
--
Piergiorgio Lucidi
Web: http://about.me/piergiorgiolucidi