Add check-added-large-files hook
diff --git a/tests/check_added_large_files_test.py b/tests/check_added_large_files_test.py
new file mode 100644
index 0000000..b0ae4cd
--- /dev/null
+++ b/tests/check_added_large_files_test.py
@@ -0,0 +1,79 @@
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
+import io
+
+import pytest
+from plumbum import local
+
+from pre_commit_hooks.check_added_large_files import find_large_added_files
+from pre_commit_hooks.check_added_large_files import main
+
+
+@pytest.yield_fixture
+def temp_git_dir(tmpdir):
+    git_dir = tmpdir.join('gits').strpath
+    local['git']('init', git_dir)
+    yield git_dir
+
+
+def write_file(filename, contents):
+    """Hax because coveragepy chokes on nested context managers."""
+    with io.open(filename, 'w') as file_obj:
+        file_obj.write(contents)
+
+
+def test_nothing_added(temp_git_dir):
+    with local.cwd(temp_git_dir):
+        assert find_large_added_files(['f.py'], 0) == 0
+
+
+def test_adding_something(temp_git_dir):
+    with local.cwd(temp_git_dir):
+        write_file('f.py', "print('hello world')")
+        local['git']('add', 'f.py')
+
+        # Should fail with max size of 0
+        assert find_large_added_files(['f.py'], 0) == 1
+
+
+def test_add_something_giant(temp_git_dir):
+    with local.cwd(temp_git_dir):
+        write_file('f.py', 'a' * 10000)
+
+        # Should not fail when not added
+        assert find_large_added_files(['f.py'], 0) == 0
+
+        local['git']('add', 'f.py')
+
+        # Should fail with strict bound
+        assert find_large_added_files(['f.py'], 0) == 1
+
+        # Should also fail with actual bound
+        assert find_large_added_files(['f.py'], 9) == 1
+
+        # Should pass with higher bound
+        assert find_large_added_files(['f.py'], 10) == 0
+
+
+def test_added_file_not_in_pre_commits_list(temp_git_dir):
+    with local.cwd(temp_git_dir):
+        write_file('f.py', "print('hello world')")
+        local['git']('add', 'f.py')
+
+        # Should pass even with a size of 0
+        assert find_large_added_files(['g.py'], 0) == 0
+
+
+def test_integration(temp_git_dir):
+    with local.cwd(temp_git_dir):
+        assert main(argv=[]) == 0
+
+        write_file('f.py', 'a' * 10000)
+        local['git']('add', 'f.py')
+
+        # Should not fail with default
+        assert main(argv=['f.py']) == 0
+
+        # Should fail with --maxkb
+        assert main(argv=['--maxkb', '9', 'f.py']) == 1