public void TestPhunCacheCanGetAndSetValueFromCache() { // Arrange var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); var fakeConfig = new Mock<ICmsConfiguration>(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(false); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testfailed")); mockRequest.Setup(rq => rq.Path).Returns("/testfailed"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); context.Setup(c => c.Cache).Returns(HttpRuntime.Cache); mockRequest.Setup(rq => rq.QueryString).Returns(new NameValueCollection()); fakeConfig.Setup(cf => cf.IsResourceRoute(It.IsAny<string>())).Returns(false); // Act var cache = new PhunCache(context.Object); var expected = new ContentConnector(); var initialCount = HttpRuntime.Cache.Count; cache.set("connector", expected); var afterCount = HttpRuntime.Cache.Count; // Assert Assert.AreEqual(initialCount + 1, afterCount); var result = cache.get("connector"); Assert.AreEqual(expected, result); }
public void TestPhunApiContentUrlReturnsContentDownloadPath() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); var fakeConfig = new Mock<ICmsConfiguration>(); var expected = "/asdf/download/content/testz"; fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(true); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); context.Setup(c => c.Cache).Returns(HttpRuntime.Cache); mockRequest.Setup(rq => rq.QueryString).Returns(new NameValueCollection()); fakeConfig.Setup(cf => cf.ContentRouteNormalized).Returns("asdf"); fakeUtility.Setup(u => u.Config).Returns(fakeConfig.Object); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; // Act var result = api.contentUrl("/testz"); // Assert Assert.AreEqual(expected, result); }
public void TestCreateOrUpdateThrowsRootPathError() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act connector.CreateOrUpdate(null, null, new Uri("http://localhost/test")); }
public void TestCreateReturnErrorForExistingContent() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(true); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act connector.Create("/test", string.Empty, new Uri("http://localhost/test")); }
public void TestCreateOrUpdateCanCreateEmptyFile() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeRepository.Setup(r => r.Save(It.Is<ContentModel>(cm => cm.Data == null))).Verifiable(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeUtility.Setup(u => u.Normalize(It.IsAny<string>())).Returns("/test"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act var result = connector.CreateOrUpdate("/test", null, new Uri("http://localhost/test")); // Assert fakeRepository.VerifyAll(); Assert.IsNull(result.Data); }
public void TestPhunApiBundlesCallUtilityRenderBundles() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); fakeUtility.Setup(u => u.PhunCmsRenderBundles(true, true, true, true, true)).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; // Act api.bundles(); // Assert fakeUtility.VerifyAll(); }
public void TestRetrieveThrowsNotFoundException() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeRepository.Setup(r => r.Retrieve(It.IsAny<ContentModel>(), It.IsAny<bool>())).Returns(new ContentModel()); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeUtility.Setup(u => u.Normalize(It.IsAny<string>())).Returns("/test"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act connector.Retrieve("/test", new Uri("http://localhost/test")); }
public void TestRetrieveReturnsValidContent() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); var expected = 100; fakeRepository.Setup(r => r.Retrieve(It.IsAny<ContentModel>(), It.IsAny<bool>())).Returns(new ContentModel() { DataLength = expected }); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeUtility.Setup(u => u.Normalize(It.IsAny<string>())).Returns("/test"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act var result = connector.Retrieve("/test", new Uri("http://localhost/test")); // Assert Assert.AreEqual(expected, result.DataLength); }
public void TestRetrieveFolderReturnAZipFile() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeRepository.Setup(r => r.GetFolder(It.IsAny<ContentModel>())).Returns(System.IO.Path.GetTempFileName()); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act var result = connector.Retrieve("/test/", new Uri("http://localhost/test")); // Assert Assert.IsNotNull(result.Data); Assert.IsTrue(result.Path.EndsWith(".zip")); }
public void TestPhunApiRequireReturnAnInstanceOfRegisteredApiObject() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); fakeUtility.Setup(u => u.PhunPartialEditable(It.IsAny<Uri>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; Bootstrapper.Default.RegisterRequireJsModule<ContentConnector>("connector"); // Act var result = api.require("connector"); Bootstrapper.Default.ApiList.Clear(); // Assert Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(ContentConnector)); }
public void TestListReturnsQueryable() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeUtility.Setup(u => u.Normalize(It.IsAny<string>())).Returns("/test"); fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(true); fakeRepository.Setup(r => r.List(It.IsAny<ContentModel>())) .Returns(new List<ContentModel>().AsQueryable()); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act var result = connector.List("/test", new Uri("http://localhost/test")); // Assert Assert.IsNotNull(result); }
public void TestPhunApiTenantHostReturnInternalProperty() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); var expected = "testing"; mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); fakeUtility.Setup(u => u.PhunPartialEditable(It.IsAny<Uri>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; api.host = expected; // Act var result = api.tenantHost; // Assert Assert.AreEqual(expected, result); }
public void TestPhunApiResourceUrlCallUtilityGetResourcePath() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(true); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); context.Setup(c => c.Cache).Returns(HttpRuntime.Cache); mockRequest.Setup(rq => rq.QueryString).Returns(new NameValueCollection()); fakeUtility.Setup(u => u.GetResourcePath("/testz")).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; // Act api.resourceUrl("/testz"); // Assert fakeUtility.VerifyAll(); }
public void TestPhunApiRequireReturnInteralProperties() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); var expectedFileSystem = new Mock<IFileSystem>(); var expectedPath = new Mock<IPath>(); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); fakeUtility.Setup(u => u.PhunPartialEditable(It.IsAny<Uri>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; api.phunFileSystem = expectedFileSystem.Object; api.phunPath = expectedPath.Object; // Act // Assert Assert.AreEqual(expectedFileSystem.Object, api.require("fs")); Assert.AreEqual(expectedPath.Object, api.require("path")); Assert.AreEqual(null, api.require("unknown")); }
public void TestDeleteSuccessfullyCallRepositoryRemove() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeUtility.Setup(u => u.Normalize(It.IsAny<string>())).Returns("/test"); fakeRepository.Setup(r => r.Remove(It.IsAny<ContentModel>())).Verifiable(); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; // Act connector.Delete("/test", new Uri("http://localhost/test")); // Assert fakeRepository.VerifyAll(); }
public void TestRenderPageRenderResource() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var fakeRepository = new Mock<IContentRepository>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); var fakeConfig = new Mock<ICmsConfiguration>(); var fakeResourceFile = new Mock<ResourceVirtualFile>(); fakeUtility.Setup(u => u.GetTenantHost(It.IsAny<Uri>())).Returns("localhost"); fakeRepository.Setup(r => r.Exists(It.IsAny<ContentModel>())).Returns(true); connector.ContentRepository = fakeRepository.Object; connector.PathUtility = fakeUtility.Object; mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/test")); mockRequest.Setup(rq => rq.Path).Returns("/test"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); context.Setup(c => c.Cache).Returns(new Cache()); mockRequest.Setup(rq => rq.QueryString).Returns(new NameValueCollection()); fakeResourceFile.Setup(rf => rf.WriteFile(It.IsAny<HttpContextBase>())).Verifiable(); fakeConfig.Setup(cf => cf.IsResourceRoute(It.IsAny<string>())).Returns(true); fakeConfig.Setup(cf => cf.GetResourceFile(It.IsAny<string>())).Returns(fakeResourceFile.Object); connector.Config = fakeConfig.Object; // Act connector.RenderPage(context.Object); // Assert fakeResourceFile.VerifyAll(); }
public void TestPhunApiPartialEditableCallUtilityPhunPartialEditable() { // Arrange var connector = new ContentConnector(); var fakeUtility = new Mock<ResourcePathUtility>(); var mockRequest = new Mock<HttpRequestBase>(); var context = new Mock<HttpContextBase>(); mockRequest.Setup(rq => rq.Url).Returns(new Uri("http://localhost/testz")); mockRequest.Setup(rq => rq.Path).Returns("/testz"); context.Setup(ctx => ctx.Request).Returns(mockRequest.Object); fakeUtility.Setup(u => u.PhunPartialEditable(It.IsAny<Uri>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>())).Verifiable(); var api = new PhunApi(context.Object, connector); api.utility = fakeUtility.Object; // Act api.partialEditable("test", "test", new { title = "test" }); // Assert fakeUtility.VerifyAll(); }