Skip to content

Commit

Permalink
Added testing support for the Mail service.
Browse files Browse the repository at this point in the history
  • Loading branch information
gcv committed Nov 14, 2010
1 parent b79d57b commit 456a09d
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
24 changes: 23 additions & 1 deletion src/appengine_magic/testing.clj
Expand Up @@ -2,6 +2,7 @@
(:import [com.google.appengine.tools.development.testing LocalServiceTestHelper
LocalServiceTestConfig
LocalMemcacheServiceTestConfig LocalMemcacheServiceTestConfig$SizeUnit
LocalMailServiceTestConfig
LocalDatastoreServiceTestConfig]))


Expand All @@ -11,6 +12,18 @@
:mb LocalMemcacheServiceTestConfig$SizeUnit/MB})


(def *logging-levels*
{:all java.util.logging.Level/ALL
:severe java.util.logging.Level/SEVERE
:warning java.util.logging.Level/WARNING
:info java.util.logging.Level/INFO
:config java.util.logging.Level/CONFIG
:fine java.util.logging.Level/FINE
:finer java.util.logging.Level/FINER
:finest java.util.logging.Level/FINEST
:off java.util.logging.Level/OFF})


(defn memcache [& {:keys [max-size size-units]}]
(let [lmstc (LocalMemcacheServiceTestConfig.)]
(cond
Expand Down Expand Up @@ -43,6 +56,15 @@
ldstc))


(defn mail [& {:keys [log-mail-body? log-mail-level]
:or {log-mail-body? false
log-mail-level :info}}]
(let [lmstc (LocalMailServiceTestConfig.)]
(.setLogMailBody lmstc log-mail-body?)
(.setLogMailLevel lmstc (*logging-levels* log-mail-level))
lmstc))


(defn- make-local-services-fixture-fn [services]
(fn [test-fn]
(let [helper (LocalServiceTestHelper. (into-array LocalServiceTestConfig services))]
Expand All @@ -53,7 +75,7 @@

(defn- local-services-helper
([]
[(memcache) (datastore)])
[(memcache) (datastore) (mail)])
([services override]
(let [services (if (= :all services) (local-services-helper) services)]
(if (nil? override)
Expand Down
15 changes: 15 additions & 0 deletions test/test/appengine_magic/services/mail.clj
@@ -0,0 +1,15 @@
(ns test.appengine-magic.services.mail
(:use clojure.test)
(:require [appengine-magic.services.mail :as mail]
[appengine-magic.testing :as ae-testing]))


(use-fixtures :each (ae-testing/local-services :all))


(deftest basics
(let [msg (mail/make-message :to "one@example.com"
:from "two@example.com"
:subject "test"
:text-body "hello world")]
(mail/send msg)))

0 comments on commit 456a09d

Please sign in to comment.