public void TemporaryInstance_Deletes_Instance_If_Start_Fails()
        {
            // Arrange
            var mock = new Mock <ISqlLocalDbApi>();

            mock.Setup((p) => p.LatestVersion)
            .Returns("v99.9");

            mock.Setup((p) => p.CreateInstance(It.IsAny <string>(), "v99.9"))
            .Verifiable();

            mock.Setup((p) => p.StartInstance(It.IsAny <string>()))
            .Throws <PlatformNotSupportedException>();

            mock.Setup((p) => p.DeleteInstance(It.IsAny <string>()))
            .Verifiable();

            ISqlLocalDbApi api = mock.Object;

            using (TemporarySqlLocalDbInstance target = api.CreateTemporaryInstance())
            {
                // Act and Assert
                Assert.Throws <PlatformNotSupportedException>(() => target.GetInstanceInfo());
            }

            mock.Verify();
        }
        public void TemporaryInstance_Ignores_Exception_If_Stop_Fails(int errorCode)
        {
            // Arrange
            var mock = new Mock <ISqlLocalDbApi>();

            mock.Setup((p) => p.LatestVersion)
            .Returns("v99.9");

            mock.Setup((p) => p.CreateInstance(It.IsAny <string>(), "v99.9"))
            .Verifiable();

            mock.Setup((p) => p.StartInstance(It.IsAny <string>()))
            .Verifiable();

            mock.Setup((p) => p.StopInstance(It.IsAny <string>(), null))
            .Throws(new SqlLocalDbException("Error", errorCode))
            .Verifiable();

            mock.Setup((p) => p.DeleteInstance(It.IsAny <string>()))
            .Verifiable();

            ISqlLocalDbApi api = mock.Object;

            // Act
            using (TemporarySqlLocalDbInstance target = api.CreateTemporaryInstance())
            {
                target.GetInstanceInfo();
            }

            // Assert
            mock.Verify();
        }
Exemple #3
0
        public void CreateTemporaryInstance_Throws_If_Api_Is_Null()
        {
            // Arrange
            ISqlLocalDbApi api = null;

            // Act and Assert
            Assert.Throws <ArgumentNullException>("api", () => api.CreateTemporaryInstance());
        }
        public static void TemporaryInstance_Ignores_Exception_If_Delete_Fails(int errorCode)
        {
            // Arrange
            if (!SqlLocalDbApi.IsWindows)
            {
                // HACK Theories dont seem to work correctly with subclasses now
                // so cannot make a derived class for a "Windows-only" theory.
                return;
            }

            // Arrange
            var mock = new Mock <ISqlLocalDbApi>();

            mock.Setup((p) => p.LatestVersion)
            .Returns("v99.9");

            mock.Setup((p) => p.CreateInstance(It.IsAny <string>(), "v99.9"))
            .Verifiable();

            mock.Setup((p) => p.StartInstance(It.IsAny <string>()))
            .Verifiable();

            mock.Setup((p) => p.StopInstance(It.IsAny <string>(), null))
            .Verifiable();

            mock.Setup((p) => p.DeleteInstance(It.IsAny <string>()))
            .Throws(new SqlLocalDbException("Error", errorCode))
            .Verifiable();

            ISqlLocalDbApi api = mock.Object;

            // Act
            using (TemporarySqlLocalDbInstance target = api.CreateTemporaryInstance())
            {
                target.GetInstanceInfo();
            }

            // Assert
            mock.Verify();
        }