--- /dev/null
+import os
+import pytest
+
+import testinfra.utils.ansible_runner
+
+testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
+    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
+
+
+@pytest.fixture
+def chrony_conf_file(host, os_family):
+    conf = host.ansible('include_vars', 'file=../../defaults/main.yml')[
+            'ansible_facts']['chrony']['conf'][os_family]['config_file']
+    return conf
+
+
+@pytest.fixture
+def os_family(host):
+    osf = host.ansible("setup")['ansible_facts']['ansible_os_family']
+    return osf
+
+
+def test_chrony_conf_file_exists(host, chrony_conf_file):
+    assert host.file(chrony_conf_file).exists, 'Config file not found!'
+
+
+def test_chrony_service_running_enabled(host):
+    assert host.service('chronyd').is_running, \
+        'Chronyd service is not running!'
+    assert host.service('chronyd').is_enabled, \
+        'Chronyd service is not enabled!'
+
+
+def test_ntp_synchronized(host, chrony_conf_file):
+    assert host.file(chrony_conf_file).exists, 'Config file not found!'
+    if host.file(chrony_conf_file).contains("server "):
+        out = host.check_output('systemctl status chronyd')
+        assert 'Selected source' in out, \
+            'Chronyd did not synchronize with NTP server.'
+    else:
+        # Host acts as a time source
+        pass