# Path: scar/providers/aws/iam.py
# class IAM(GenericClient):
# 
#     def __init__(self, resources_info) -> None:
#         super().__init__(resources_info.get('iam'))
# 
#     def get_user_name_or_id(self):
#         user = self.client.get_user_info()
#         if user:
#             return user.get('UserName', user['User']['UserId'])


import unittest
import sys
import os
from mock import MagicMock
from mock import patch
from scar.providers.aws.iam import IAM
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

sys.path.append("..")
sys.path.append(".")
sys.path.append("../..")



class TestIAM(unittest.TestCase):

    def __init__(self, *args):
        os.environ["AWS_DEFAULT_REGION"] = "us-east-1"
        unittest.TestCase.__init__(self, *args)

    def test_init(self):
        ecr = IAM({})
        self.assertEqual(type(ecr.client.client).__name__, "IAM")

    @patch('boto3.Session')
    def test_get_user_name_or_id(self, boto_session):
        session = MagicMock(['client'])
        client = MagicMock(['get_user'])
        session.client.return_value = client
        boto_session.return_value = session

# Path: scar/providers/aws/iam.py
# class IAM(GenericClient):
# 
#     def __init__(self, resources_info) -> None:
#         super().__init__(resources_info.get('iam'))
# 
#     def get_user_name_or_id(self):
#         user = self.client.get_user_info()
#         if user:
#             return user.get('UserName', user['User']['UserId'])


# Path: test/unit/aws/test_iam.py
import unittest
import sys
import os
from mock import MagicMock
from mock import patch
from scar.providers.aws.iam import IAM

# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

sys.path.append("..")
sys.path.append(".")
sys.path.append("../..")



class TestIAM(unittest.TestCase):

    def __init__(self, *args):
        os.environ["AWS_DEFAULT_REGION"] = "us-east-1"
        unittest.TestCase.__init__(self, *args)

    def test_init(self):
        ecr = IAM({})
        self.assertEqual(type(ecr.client.client).__name__, "IAM")

    @patch('boto3.Session')
    def test_get_user_name_or_id(self, boto_session):
        session = MagicMock(['client'])
        client = MagicMock(['get_user'])
        session.client.return_value = client
        boto_session.return_value = session

        iam = IAM({})