def test_next_oid_when_oid_doesnt_exists(self):
        store = OIDStore({(1, 2, 4): univ.Integer(100)})

        result = store.get_next((1, 2, 3))

        self.assertEqual((1, 2, 4), result[0])
        self.assertEqual(univ.Integer(100), result[1])
    def test_next_oid_when_value_is_lambda_get_called(self):
        mock_lambda = MagicMock(return_value=univ.Integer(99))
        store = OIDStore({(1, 2, 2): None, (1, 2, 3): mock_lambda})

        result = store.get_next((1, 2, 2))

        self.assertEqual(univ.Integer(99), result[1])
        mock_lambda.assert_called_with((1, 2, 3), store)
    def test_next_oid(self):
        store = OIDStore({
            (1, 2, 3): univ.Integer(99),
            (1, 2, 4): univ.Integer(100)
        })

        result = store.get_next((1, 2, 3))

        self.assertEqual((1, 2, 4), result[0])
        self.assertEqual(univ.Integer(100), result[1])
    def test_next_oid_when_last(self):
        store = OIDStore({(1, 2, 3): univ.Integer(99)})

        with self.assertRaises(NoNextOID):
            store.get_next((1, 2, 3))