more tests #2

This commit is contained in:
Trolli Schmittlauch 2020-03-20 20:17:27 +01:00
parent 9d20589cf8
commit b234c7ac4e

View file

@ -11,6 +11,12 @@ import Hash2Pub.FediChord
spec :: Spec spec :: Spec
spec = do spec = do
-- define some sensible test data
let
nodeDomain = "example.social"
vs = 4
ip = tupleToHostAddress6 (0x2001, 0x16b8, 0x755a, 0xb110, 0x7d6a, 0x12ab, 0xf0c5, 0x386e)
describe "NodeID" $ do describe "NodeID" $ do
it "can store a numeral ID" $ it "can store a numeral ID" $
getNodeID (toNodeID 2342) `shouldBe` 2342 getNodeID (toNodeID 2342) `shouldBe` 2342
@ -30,10 +36,6 @@ spec = do
it "throws an exception when @toNodeID@ on out-of-bound values" $ it "throws an exception when @toNodeID@ on out-of-bound values" $
pending pending
it "can be generated" $ do it "can be generated" $ do
let
nodeDomain = "example.social"
vs = 4
ip = tupleToHostAddress6 (0x2001, 0x16b8, 0x755a, 0xb110, 0x7d6a, 0x12ab, 0xf0c5, 0x386e)
genNodeIDBS ip nodeDomain vs `shouldBe` "\ACK\211\183&S\GS\214\247Xn8\216\232\195\247\162\182\253\210\SOHG7I\194\251\196\130\142RSx\219" genNodeIDBS ip nodeDomain vs `shouldBe` "\ACK\211\183&S\GS\214\247Xn8\216\232\195\247\162\182\253\210\SOHG7I\194\251\196\130\142RSx\219"
genNodeID ip nodeDomain vs `shouldBe` toNodeID 3087945874980469002564169693112490135217795916629034079089428181202645514459 genNodeID ip nodeDomain vs `shouldBe` toNodeID 3087945874980469002564169693112490135217795916629034079089428181202645514459
@ -46,8 +48,8 @@ spec = do
it "can be initialised" $ do it "can be initialised" $ do
let ns = NodeState { let ns = NodeState {
nid = toNodeID 12 nid = toNodeID 12
, domain = "herebedragons.social" , domain = nodeDomain
, ipAddr = tupleToHostAddress6 (0x2001, 0x16b8, 0x755a, 0xb110, 0x7d6a, 0x12ab, 0xf0c5, 0x386e) , ipAddr = ip
, dhtPort = 2342 , dhtPort = 2342
, apPort = Nothing , apPort = Nothing
, nodeCache = Map.empty , nodeCache = Map.empty
@ -58,3 +60,22 @@ spec = do
, pNumParallelQueries = 2 , pNumParallelQueries = 2
} }
print ns print ns
it "can be initialised partly and then modified later" $ do
let ns = NodeState {
nid = undefined
, domain = nodeDomain
, ipAddr = ip
, dhtPort = 2342
, apPort = Nothing
, nodeCache = Map.empty
, successors = []
, predecessors = []
, kNeighbours = 3
, lNumBestNodes = 3
, pNumParallelQueries = 2
}
nsReady = ns {
nid = genNodeID (ipAddr ns) (domain ns) 3
}
print nsReady