'Test the Interrogate flow.'

def testInterrogateWindows(self):

    fixture_test_lib.ClientFixture(self.client_id, token=self.token)
    self.SetupClients(1, system='Windows', os_version='6.2', arch='AMD64')
    with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.REGISTRY, vfs_test_lib.FakeRegistryVFSHandler):
        with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.OS, vfs_test_lib.FakeFullVFSHandler):
            client_mock = action_mocks.InterrogatedClient()
            client_mock.InitializeClient(system='Windows', version='6.1.7600', kernel='6.1.7601')
            for _ in flow_test_lib.TestFlowHelper(discovery.Interrogate.__name__, client_mock, token=self.token, client_id=self.client_id):
                pass
            self.fd = aff4.FACTORY.Open(self.client_id, token=self.token)
            self._CheckAFF4Object('test_node', 'Windows', (100 * 1000000))
            self._CheckClientInfo()
            self._CheckGRRConfig()
            self._CheckNotificationsCreated()
            self._CheckClientSummary('Windows', '6.1.7600', kernel='6.1.7601')
            self._CheckUsers(['jim', 'kovacs'])
            self._CheckNetworkInfo()
            self._CheckVFS()
            self._CheckLabelIndex()
            self._CheckWindowsDiskInfo()
            self._CheckRegistryPathspec()
            self._CheckClientKwIndex(['Linux'], 0)
            self._CheckClientKwIndex(['Windows'], 1)
            self._CheckClientKwIndex(['Label2'], 1)
            self._CheckMemory()
