cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Gentry <mgen...@masslight.net>
Subject Re: Changing database connection programmatically
Date Fri, 22 Jan 2016 21:06:26 GMT
Yeah, that's pretty much what I did for my Cayenne 3.1 unit tests, although
I don't like inner classes, so I did it separately.  Also didn't use the
expression chaining, but still, very similar concept-wise.



On Fri, Jan 22, 2016 at 3:52 PM, Andrus Adamchik <andrus@objectstyle.org>
wrote:

> In addition to Mike and Savva's suggestions, I wanted to point to our
> LinkRest unit tests. Here is a base class (ignore the Jersey part, just
> focus on Cayenne and Derby) [1].
>
> * It manages a lifecycle of a Derby DB instance via simple DerbyManager,
> ensuring filesystem folders are cleaned up between the runs.
> * Cayenne XML is DataNode-less [2], expecting you to define the DataSource
> via API in the unit test (as well as in the main app .. not in this example
> though).
> * ServerRuntime creation procedure includes making an in-memory DataSource
> and a unit test SchemaUpdateStrategy:
>
> CAYENNE_RUNTIME = new ServerRuntimeBuilder()
>         .addConfig("cayenne-linkrest-tests.xml")
>         .addModule(new Module() {
>
>                 // Java 7; for Java 8 you can use a lambda for the Module
>                 @Override
>                 public void configure(Binder binder) {
>
> binder.bind(SchemaUpdateStrategy.class).to(CreateIfNoSchemaStrategy.class);
>                 }
>         })
>         .jdbcDriver("org.apache.derby.jdbc.EmbeddedDriver")
>         .url("jdbc:derby:target/derby;create=true")
>         .build();
>
> Hope this helps.
>
> Andrus
>
> [1]
> https://github.com/nhl/link-rest/blob/master/src/test/java/com/nhl/link/rest/it/fixture/JerseyTestOnDerby.java
> [2]
> https://github.com/nhl/link-rest/blob/master/src/test/resources/cayenne-linkrest-tests.xml
>
> Andrus
>
> > On Jan 22, 2016, at 9:50 PM, Hugi Thordarson <hugi@karlmenn.is> wrote:
> >
> > Ah, sorry about that… I’m using the current 4.0 snapshots.
> >
> > - hugi
> >
> >
> >
> >> On 22. jan. 2016, at 18:47, Michael Gentry <mgentry@masslight.net>
> wrote:
> >>
> >> Which version of Cayenne are you using?
> >>
> >>
> >> On Fri, Jan 22, 2016 at 1:25 PM, Hugi Thordarson <hugi@karlmenn.is>
> wrote:
> >>
> >>> Hi all,
> >>>
> >>> I’m writing some tests for my DataObjects. Before the tests run, I’d
> like
> >>> to provision an h2 database and switch my model’s connection to it for
> the
> >>> purpose of testing.
> >>>
> >>> What’s the preferred way to switch the connection programmatically?
> >>>
> >>> Cheers,
> >>> - hugi
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message