#  Copyright (c) 2020. Davi Pereira dos Santos
#  This file is part of the aiuna project.
#  Please respect the license - more about this in the section (*) below.
#
#  aiuna is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  aiuna is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with aiuna.  If not, see <http://www.gnu.org/licenses/>.
#
#  (*) Removing authorship by any means, e.g. by distribution of derived
#  works or verbatim, obfuscated, compiled or rewritten versions of any
#  part of this work is a crime and is unethical regarding the effort and
#  time spent here.
#  Relevant employers or funding agencies will be notified accordingly.
from unittest import TestCase

from aiuna.history import History
from garoupa.uuid import UUID

from akangatu.operator.nullary.empty import SingletonException
from akangatu.transf.noop import NoOp


class Test(TestCase):
    def test_storage(self):
        from aiuna.content.root import Root
        self.assertTrue(Root >> NoOp == Root)
        self.assertRaises(SingletonException, lambda: Root({}, UUID(), History(NoOp)))
        self.assertTrue(Root >> NoOp == Root)
