diff --git a/src/appengine_magic/testing.clj b/src/appengine_magic/testing.clj index 89d5f3a..f6718ec 100644 --- a/src/appengine_magic/testing.clj +++ b/src/appengine_magic/testing.clj @@ -2,6 +2,7 @@ (:import [com.google.appengine.tools.development.testing LocalServiceTestHelper LocalServiceTestConfig LocalMemcacheServiceTestConfig LocalMemcacheServiceTestConfig$SizeUnit + LocalMailServiceTestConfig LocalDatastoreServiceTestConfig])) @@ -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 @@ -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))] @@ -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) diff --git a/test/test/appengine_magic/services/mail.clj b/test/test/appengine_magic/services/mail.clj new file mode 100644 index 0000000..7017de2 --- /dev/null +++ b/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)))