예제 #1
0
        public void GetSdkObjectFromGlobalJson()
        {
            //Arrange
            var sdkObject = new
            {
                project = new[] { "src", "test" },
                sdk     = new
                {
                    version      = "1.0.0",
                    runtime      = "coreclr",
                    architecture = "arm"
                }
            };

            FileSystemHelpers.Instance = MockFileSystem.GetMockFileSystem(@"x:\repo\global.json", () => JsonConvert.SerializeObject(sdkObject));
            var arch = AspNet5Helper.GetDefaultAspNet5RuntimeArchitecture();
            //Act
            var sdk = AspNet5Helper.GetAspNet5Sdk(@"x:\repo");

            //Assert
            Assert.NotNull(sdk);
            Assert.Equal(sdkObject.sdk.version, sdk.Version);
            Assert.Equal(sdkObject.sdk.runtime, sdk.Runtime);
            Assert.Equal(sdkObject.sdk.architecture, sdk.Architecture);
        }
예제 #2
0
        public void ReturnEmptyCollectionOnLogEntryIdDoesntExist()
        {
            //Arrage
            var fileSystem = MockFileSystem.GetMockFileSystem(@"x:\deployment\deploymentId\log.xml", () => @"<?xml version=""1.0"" encoding=""utf-8""?>
<entries>
    <entry time=""2015-07-22T19:42:24.1462725Z"" id=""validId"" type=""0"">
        <message>Test message</message>
    </entry>
</entries>");

            var environment = new Mock <IEnvironment>();

            environment
            .Setup(s => s.DeploymentsPath)
            .Returns(@"x:\deployment");

            var trace = NullTracerFactory.Instance;

            var deploymentManager = CreateDeploymentManager(fileSystem: fileSystem, traceFactory: trace, environment: environment.Object);

            //Act
            var result = deploymentManager.GetLogEntryDetails("deploymentId", "invalid");

            //Assert
            Assert.Empty(result);
        }
예제 #3
0
        public void InvalidCommitTextTests()
        {
            var id             = Guid.NewGuid().ToString();
            var deploymentPath = @"x:\sites\deployments";
            var environment    = Mock.Of <IEnvironment>(e => e.DeploymentsPath == deploymentPath);
            var analytics      = Mock.Of <IAnalytics>();
            var statusLock     = Mock.Of <IOperationLock>(l => l.Lock(It.IsAny <string>()) == true);
            var stream         = new Mock <MemoryStream> {
                CallBase = true
            };

            stream.Setup(s => s.Close());

            var statusFile = Path.Combine(deploymentPath, id, "status.xml");

            FileSystemHelpers.Instance = MockFileSystem.GetMockFileSystem(statusFile, () =>
            {
                stream.Object.Position = 0;
                return(Encoding.UTF8.GetString(stream.Object.GetBuffer(), 0, (int)stream.Object.Length));
            });

            var fileBase = Mock.Get(FileSystemHelpers.Instance.File);

            fileBase.Setup(f => f.Create(statusFile))
            .Returns((string path) => stream.Object);

            var statusCompleteFile = Path.Combine(deploymentPath, id, "status_complete.xml");

            fileBase.Setup(f => f.Copy(statusFile, statusCompleteFile, true));

            var deploymentStatus = DeploymentStatusFile.Create(id, environment, statusLock);

            deploymentStatus.Id                 = id;
            deploymentStatus.Status             = DeployStatus.Success;
            deploymentStatus.StatusText         = "Success";
            deploymentStatus.AuthorEmail        = "*****@*****.**";
            deploymentStatus.Author             = "John Doe \x08";
            deploymentStatus.Message            = "Invalid char is \u0010";
            deploymentStatus.Progress           = String.Empty;
            deploymentStatus.EndTime            = DateTime.UtcNow;
            deploymentStatus.LastSuccessEndTime = DateTime.UtcNow;
            deploymentStatus.Complete           = true;
            deploymentStatus.IsTemporary        = false;
            deploymentStatus.IsReadOnly         = false;

            // Save
            deploymentStatus.Save();

            // Roundtrip
            deploymentStatus = DeploymentStatusFile.Open(id, environment, analytics, statusLock);

            // Assert
            Assert.Equal(id, deploymentStatus.Id);
            Assert.Equal("John Doe ", deploymentStatus.Author);
            Assert.Equal("Invalid char is ", deploymentStatus.Message);
        }
예제 #4
0
        public void GetSdkObjectWhenGlobalJsondDoesntHaveOne()
        {
            //Arrange
            var sdkObject = new
            {
                project = new[] { "src", "test" }
            };

            FileSystemHelpers.Instance = MockFileSystem.GetMockFileSystem(@"x:\repo\global.json", () => JsonConvert.SerializeObject(sdkObject));
            var arch = AspNet5Helper.GetDefaultAspNet5RuntimeArchitecture();
            //Act
            var sdk = AspNet5Helper.GetAspNet5Sdk(@"x:\repo");

            //Assert
            Assert.NotNull(sdk);
            Assert.Equal(Constants.DnxDefaultVersion, sdk.Version);
            Assert.Equal(Constants.DnxDefaultClr, sdk.Runtime);
            Assert.Equal(arch, sdk.Architecture);
        }
예제 #5
0
        public void CorruptedDeploymentStatusFileTests(string content, bool expectedNull, bool expectedError)
        {
            var id             = Guid.NewGuid().ToString();
            var deploymentPath = @"x:\sites\deployments";
            var environment    = Mock.Of <IEnvironment>(e => e.DeploymentsPath == deploymentPath);
            var analytics      = Mock.Of <IAnalytics>();
            var statusLock     = Mock.Of <IOperationLock>(l => l.Lock() == true);

            var statusFile = Path.Combine(deploymentPath, id, "status.xml");

            FileSystemHelpers.Instance = MockFileSystem.GetMockFileSystem(statusFile, () => content);

            var status = DeploymentStatusFile.Open(id, environment, analytics, statusLock);

            if (expectedNull)
            {
                Assert.Null(status);

                Mock.Get(FileSystemHelpers.Instance.DirectoryInfo.FromDirectoryName(Path.Combine(deploymentPath, id)))
                .Verify(d => d.Delete(), content != null ? Times.Once() : Times.Never());
            }
            else
            {
                Assert.NotNull(status);

                Mock.Get(FileSystemHelpers.Instance.DirectoryInfo.FromDirectoryName(Path.Combine(deploymentPath, id)))
                .Verify(d => d.Delete(), Times.Never());
            }

            if (expectedError)
            {
                Mock.Get(analytics).Verify(a => a.UnexpectedException(It.IsAny <Exception>(), true), Times.Once());
            }
            else
            {
                Mock.Get(analytics).Verify(a => a.UnexpectedException(It.IsAny <Exception>(), It.IsAny <bool>()), Times.Never());
            }
        }