package org.jooby.aws;
import static org.junit.Assert.assertEquals;
import org.jooby.test.ServerFeature;
import org.junit.Test;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValueFactory;
public class AwsFeature extends ServerFeature {
{
use(ConfigFactory
.empty()
.withValue("aws.ses.accessKey",
ConfigValueFactory.fromAnyRef("123"))
.withValue("aws.ses.secretKey",
ConfigValueFactory.fromAnyRef("1234"))
.withValue("aws.s3.accessKey",
ConfigValueFactory.fromAnyRef("123"))
.withValue("aws.s3.secretKey",
ConfigValueFactory.fromAnyRef("1234")));
use(new Aws()
.with(creds -> new AmazonS3Client(creds))
.with(creds -> new AmazonSimpleEmailServiceClient(creds))
.doWith((final AmazonS3Client s3) -> {
return new TransferManager(s3);
}));
get("/aws/s3", req -> {
AmazonS3 s3 = req.require(AmazonS3.class);
TransferManager trx = req.require(TransferManager.class);
assertEquals(s3, trx.getAmazonS3Client());
return "s3";
});
get("/aws/ses", req -> {
req.require(AmazonSimpleEmailService.class);
return "email";
});
}
@Test
public void s3() throws Exception {
request()
.get("/aws/s3")
.expect("s3");
}
@Test
public void ses() throws Exception {
request()
.get("/aws/ses")
.expect("email");
}
}