public async Task OpenableFileOpener_InvalidType()
        {
            var opener   = new OpenableFileOpener(new PluginManager());
            var provider = new MemoryFileSystem();

            provider.WriteAllText("/test.txt", "TEST");

            try
            {
                var custom = await opener.OpenFile(typeof(CustomTextFile).GetTypeInfo(), "/test.txt", provider);
            }
            catch (ArgumentException)
            {
                // Pass
                return;
            }
            Assert.Fail("No exception thrown.  Expected ArgumentException");
        }
        public async Task OpenableFileOpener_ArgumentNullCheck_provider()
        {
            var opener   = new OpenableFileOpener(new PluginManager());
            var provider = new MemoryFileSystem();

            provider.WriteAllText("/test.txt", "TEST");

            try
            {
                var custom = await opener.OpenFile(typeof(CreatableTextFile).GetTypeInfo(), "/test.txt", null);
            }
            catch (ArgumentNullException)
            {
                // Pass
                return;
            }
            Assert.Fail("No exception thrown for argument \"provider\".  Expected ArgumentException");
        }
        public async Task OpenableFileOpener_FunctionalityTest()
        {
            var opener   = new OpenableFileOpener(new PluginManager());
            var provider = new MemoryFileSystem();

            provider.WriteAllText("/test.txt", "TEST");

            var creatable = await opener.OpenFile(typeof(CreatableTextFile).GetTypeInfo(), "/test.txt", provider);

            Assert.IsNotNull(creatable);
            Assert.IsInstanceOfType(creatable, typeof(CreatableTextFile));
            Assert.AreEqual("TEST", (creatable as CreatableTextFile).Contents);

            var openable = await opener.OpenFile(typeof(OpenableTextFile).GetTypeInfo(), "/test.txt", provider);

            Assert.IsNotNull(openable);
            Assert.IsInstanceOfType(openable, typeof(OpenableTextFile));
            Assert.AreEqual("TEST", (openable as OpenableTextFile).Contents);
        }