From efac92d90697600e80e83c2131e89b6afac316b2 Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Tue, 8 Jun 2010 17:28:28 +0900 Subject: adding tests. --- Test.hs | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Test.hs (limited to 'Test.hs') diff --git a/Test.hs b/Test.hs new file mode 100644 index 0000000..51c08e6 --- /dev/null +++ b/Test.hs @@ -0,0 +1,65 @@ +{-# LANGUAGE OverloadedStrings #-} + +module Test where + +import Data.IP +import Data.List +import Network.DNS as DNS +import Test.Framework (defaultMain, testGroup, Test) +import Test.Framework.Providers.HUnit +import Test.HUnit hiding (Test) + +tests :: [Test] +tests = [ + testGroup "Property Test" [ + testCase "lookupA" test_lookupA + , testCase "lookupAAAA" test_lookupAAAA + , testCase "lookupTXT" test_lookupTXT + , testCase "lookupAviaMX" test_lookupAviaMX + , testCase "lookupAviaCNAME" test_lookupAviaCNAME + ] + ] + +(?=) :: (Eq a, Show a) => IO a -> a -> IO () +a ?= b = a >>= (@?= b) + +test_lookupA :: IO () +test_lookupA = do + rs <- makeResolvSeed defaultResolvConf + withResolver rs $ \resolver -> + DNS.lookupA resolver "www.mew.org" ?= Just [toIPv4 [202,232,15,101]] + +(??=) :: (Ord a, Show a) => IO (Maybe [a]) -> [a] -> IO () +a ??= bs = do + mas <- a + case mas of + Nothing -> False @? "should be Nothing" + Just as -> sort as @?= sort bs + +test_lookupAAAA :: IO () +test_lookupAAAA = do + rs <- makeResolvSeed defaultResolvConf + withResolver rs $ \resolver -> do + DNS.lookupAAAA resolver "mew.org" ?= Nothing + DNS.lookupAAAA resolver "www.mew.org" ?= Just [read "2001:240:11e:c00::101"] + +test_lookupTXT :: IO () +test_lookupTXT = do + rs <- makeResolvSeed defaultResolvConf + withResolver rs $ \resolver -> + DNS.lookupTXT resolver "mew.org" ?= Just ["v=spf1 +mx -all"] + +test_lookupAviaMX :: IO () +test_lookupAviaMX = do + rs <- makeResolvSeed defaultResolvConf + withResolver rs $ \resolver -> + DNS.lookupAviaMX resolver "mixi.jp" ??= [read "202.32.29.4", read "202.32.29.5"] + +test_lookupAviaCNAME :: IO () +test_lookupAviaCNAME = do + rs <- makeResolvSeed defaultResolvConf + withResolver rs $ \resolver -> + DNS.lookupA resolver "foundry1.hongo.wide.ad.jp" ??= [read "203.178.135.1", read "203.178.138.230"] + +main :: IO () +main = defaultMain tests -- cgit v1.2.3