new_contents: # -*- coding: utf-8 -*-
  '''
      :synopsis: Unit Tests for Windows SNMP Module 'state.win_snmp'
      :platform: Windows
      :maturity: develop
      versionadded:: Carbon
  '''
  
  # Import Python Libs
  from __future__ import absolute_import
  
  # Import Salt Libs
  from salt.states import win_snmp
  import salt.ext.six as six
  
  # Import Salt Testing Libs
  from salttesting import TestCase, skipIf
  from salttesting.helpers import ensure_in_syspath
  from salttesting.mock import (
      MagicMock,
      patch,
      NO_MOCK,
      NO_MOCK_REASON,
  )
  
  ensure_in_syspath('../../')
  
  # Globals
  win_snmp.__salt__ = {}
  win_snmp.__opts__ = {}
  
  
  @skipIf(NO_MOCK, NO_MOCK_REASON)
  class WinSnmpTestCase(TestCase):
      '''
      Test cases for salt.modules.win_snmp
      '''
  
      def test_agent_settings(self):
          '''
          Test - Manage the SNMP sysContact, sysLocation, and sysServices settings.
          '''
          kwargs = {'name': 'agent-settings', 'contact': 'TestContact',
                    'location': 'TestLocation', 'services': ['Internet']}
          ret = {
              'name': kwargs['name'],
              'changes': {},
              'comment': 'Agent settings already contain the provided values.',
              'result': True
          }
          # Using this instead of dictionary comprehension in order to make pylint happy.
          get_ret = dict((key, value) for (key, value) in six.iteritems(kwargs) if key != 'name')
          mock_value_get = MagicMock(return_value=get_ret)
          mock_value_set = MagicMock(return_value=True)
          with patch.dict(win_snmp.__salt__, {'win_snmp.get_agent_settings': mock_value_get,
                                              'win_snmp.set_agent_settings': mock_value_set}):
              with patch.dict(win_snmp.__opts__, {'test': False}):
                  self.assertEqual(win_snmp.agent_settings(**kwargs), ret)
  
      def test_auth_traps_enabled(self):
          '''
          Test - Manage the sending of authentication traps.
          '''
          kwargs = {'name': 'auth-traps', 'status': True}
          ret = {
              'name': kwargs['name'],
              'changes': {
                  'old': False,
                  'new': True
              },
              'comment': 'Set EnableAuthenticationTraps to contain the provided value.',
              'result': True
          }
          mock_value_get = MagicMock(return_value=False)
          mock_value_set = MagicMock(return_value=True)
          with patch.dict(win_snmp.__salt__, {'win_snmp.get_auth_traps_enabled': mock_value_get,
                                              'win_snmp.set_auth_traps_enabled': mock_value_set}):
              with patch.dict(win_snmp.__opts__, {'test': False}):
                  self.assertEqual(win_snmp.auth_traps_enabled(**kwargs), ret)
              with patch.dict(win_snmp.__opts__, {'test': True}):
                  ret['comment'] = 'EnableAuthenticationTraps will be changed.'
                  ret['result'] = None
                  self.assertEqual(win_snmp.auth_traps_enabled(**kwargs), ret)
  
      def test_community_names(self):
          '''
          Test - Manage the SNMP accepted community names and their permissions.
          '''
          kwargs = {'name': 'community-names', 'communities': {'TestCommunity': 'Read Create'}}
          ret = {
              'name': kwargs['name'],
              'changes': {},
              'comment': 'Communities already contain the provided values.',
              'result': True
          }
          mock_value_get = MagicMock(return_value=kwargs['communities'])
          mock_value_set = MagicMock(return_value=True)
          with patch.dict(win_snmp.__salt__, {'win_snmp.get_community_names': mock_value_get,
                                              'win_snmp.set_community_names': mock_value_set}):
              with patch.dict(win_snmp.__opts__, {'test': False}):
                  self.assertEqual(win_snmp.community_names(**kwargs), ret)
  
  
  if __name__ == '__main__':
      from integration import run_tests  # pylint: disable=import-error
      run_tests(WinSnmpTestCase, needs_daemon=False)
  
subject: Add unit tests for win_snmp state