Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

446.nfa

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ResourceControllerTests.cs 4.53 KiB
    using Coscine.Api.Project.Controllers;
    using Coscine.Api.Project.Models;
    using Coscine.Api.Project.ReturnObjects;
    using Coscine.ApiCommons.Exceptions;
    using Coscine.ApiCommons.Factories;
    using Microsoft.AspNetCore.Mvc;
    using Newtonsoft.Json.Linq;
    using NUnit.Framework;
    using System;
    using System.Collections.Generic;
    using System.IO;
    
    namespace Coscine.Api.Project.Tests
    {
        [TestFixture]
        public class ResourceControllerTests : DefaultControllerTests<ResourceController>
        {
            public ResourceControllerTests() : base(new ResourceController())
            {
            }
    
            [Test]
            public void TestControllerIndex()
            {
                var actionResult = Controller.Index();
                Assert.IsTrue(actionResult.GetType() == typeof(OkObjectResult));
            }
    
            [Test]
            public void TestControllerGet()
            {
                var actionResult = Controller.Get(Resources[0].Id.ToString());
                Assert.IsTrue(actionResult.GetType() == typeof(OkObjectResult));
    
                OkObjectResult okObjectResult = (OkObjectResult)actionResult;
                Assert.IsTrue(okObjectResult.Value.GetType() == typeof(ResourceObject));
    
                ResourceObject resourceObject = (ResourceObject)okObjectResult.Value;
    
                Assert.IsTrue(resourceObject.Id == Resources[0].Id);
                Assert.IsTrue(resourceObject.DisplayName == Resources[0].DisplayName);
                Assert.IsTrue(resourceObject.Visibility.DisplayName == Resources[0].Visibility.DisplayName);
                Assert.IsTrue(resourceObject.Type.Id == Resources[0].Type.Id);
                Assert.IsTrue(resourceObject.Type.DisplayName == Resources[0].Type.DisplayName);
            }
    
    
            [Test]
            public void TestControllerUpdate()
            {
                var actionResult = Controller.Get(Resources[0].Id.ToString());
                OkObjectResult okObjectResult = (OkObjectResult)actionResult;
                ResourceObject resourceObject = (ResourceObject)okObjectResult.Value;
    
                resourceObject.DisplayName = "OtherName";
                resourceObject.ResourceTypeOption = JObject.FromObject(new RDSResourceTypeObject(Guid.NewGuid(), "PITLABTTEST", "accesskey", "secretkey"));
    
                Stream stream = ObjectFactory<ResourceObject>.SerializeToStream(resourceObject);
    
                FakeControllerContext(Users[0], stream);
    
                actionResult = Controller.Update(Resources[0].Id.ToString());
                Assert.IsTrue(actionResult.GetType() == typeof(OkObjectResult));
    
                // Cleanup
                stream.Close();
    
                stream = ObjectFactory<ResourceObject>.SerializeToStream(resourceObject);
    
                FakeControllerContext(Users[0], stream);
    
                try
                {
                    Controller.Update(Resources[1].Id.ToString());
                    Assert.Fail();
                }
                catch (Exception e)
                {
                    Assert.IsTrue(e.GetType() == typeof(NotAuthorizedException));
                }
    
                // Cleanup
                stream.Close();
            }
    
            [Test]
            public void TestControllerStoreToProject()
            {
                ResourceObject resourceObject = new ResourceObject(
                    Guid.NewGuid(),
                    "Test",
                    "testR",
                    "keys",
                    "usageR",
                    new ResourceTypeObject(Resources[0].Type.Id, Resources[0].Type.DisplayName),
                    new List<DisciplineObject>() { new DisciplineObject(Discipline.Id, Discipline.Url, Discipline.DisplayName) },
                    new VisibilityObject(Visibility.Id, Visibility.DisplayName),
                    new LicenseObject(License.Id, License.DisplayName),
                    JObject.FromObject(new RDSResourceTypeObject(Guid.NewGuid(), "PITLABTTEST", "accesskey", "secretkey"))
                );
    
                Stream stream = ObjectFactory<ResourceObject>.SerializeToStream(resourceObject);
    
                FakeControllerContext(Users[0], stream);
    
                var actionResult = Controller.StoreToProject(Projects[0].Id.ToString());
                Assert.IsTrue(actionResult.GetType() == typeof(OkObjectResult));
                OkObjectResult okObjectResult = (OkObjectResult)actionResult;
                resourceObject = (ResourceObject)okObjectResult.Value;
    
                // Cleanup
                stream.Close();
    
                stream = ObjectFactory<ResourceObject>.SerializeToStream(resourceObject);
    
                FakeControllerContext(Users[0], stream);
    
                actionResult = Controller.Delete(resourceObject.Id.ToString());
                Assert.IsTrue(actionResult.GetType() == typeof(OkObjectResult));
    
                stream.Close();
            }
        }
    }