diff --git a/date.info b/date.info
index b2e9b48e..ca22638c 100644
--- a/date.info
+++ b/date.info
@@ -14,3 +14,4 @@ files[] = tests/date_timezone.test
 files[] = tests/date_views_pager.test
 files[] = tests/date_views_popup.test
 files[] = tests/date_form.test
+files[] = tests/date_entity.test
diff --git a/tests/date_entity.test b/tests/date_entity.test
new file mode 100644
index 00000000..0ef61cfa
--- /dev/null
+++ b/tests/date_entity.test
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * @file
+ * Test date entity metadata wrapper integration.
+ */
+
+class DateEntityTestCase extends DateFieldBasic {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'Date entity metadata',
+      'description' => 'Tests integration between Date fields and entity metadata wrapper.',
+      'group' => 'Date',
+      'dependencies' => array('entity'),
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    parent::setUp();
+    $modules = array('entity');
+    $success = module_enable($modules, TRUE);
+    $this->assertTrue($success, t('Enabled modules: %modules', array('%modules' => implode(', ', $modules))));
+
+    variable_set('date_format_long', 'D, m/d/Y - H:i');
+  }
+
+  /**
+   * Test entity metadata wrapper integration.
+   */
+  public function testEntityMetadataWrapper() {
+    $field_config = array(
+      'label' => 'Test',
+      'field_name' => 'field_date_test',
+      'field_type' => 'datetime',
+      'granularity' => array('year', 'month', 'day'),
+      'entity_type' => 'node',
+      'bundle' => 'story',
+    );
+    $this->createDateField($field_config);
+
+
+    $node = entity_create($field_config['entity_type'], array('type' => $field_config['bundle']));
+    $wrapped_node = entity_metadata_wrapper($field_config['entity_type'], $node);
+
+    // November 6, 2017 09:35:37.
+    $timestamp = '1509914137';
+    $wrapped_node->{$field_config['field_name']}->value = $timestamp;
+    $expected = '1509879600';
+    $value = $wrapped_node->{$field_config['field_name']}->value->value();
+
+    $this->assertEqual($expected, $value, "The date return by metadata wrapper with limited granularity should be $expected, found $value.");
+
+    $this->deleteDateField($field_config['label']);
+  }
+
+}
