module Test.Data.Radius.IsoBase ( isoAttribute', isoPacket, ) where import Data.ByteString (ByteString) import Data.Serialize.Get (Get, runGet) import Data.Serialize.Put (Put, runPut) import Data.Radius.Packet (Packet) import Data.Radius.Attribute (Attribute') import qualified Data.Radius.StreamGet as Get import qualified Data.Radius.StreamPut as Put isoAttribute' :: Eq a => Get (Attribute' a) -> (a -> ByteString -> Put) -> Attribute' a -> Bool isoAttribute' vGet vPut a = runGet (Get.attribute' vGet) (runPut $ Put.attribute' vPut a) == Right a isoPacket :: Eq a => Get (Attribute' a) -> (a -> ByteString -> Put) -> Packet [Attribute' a] -> Bool isoPacket vGet vPut p = runGet (Get.upacket vGet) (runPut $ Put.upacket vPut p) == Right p