Ejemplo n.º 1
0
        public void InvokeWithParameterSetPlainWithValidTenantSucceeds()
        {
            var uri        = new Uri("httpS://abiquo.example.com/api/");
            var user       = "******";
            var password   = "******";
            var tenantId   = 42;
            var parameters = string.Format(@"-Uri {0} -User '{1}' -Password '{2}' -TenantId {3}", uri, user, password, tenantId);

            Mock.Arrange(() => Client.Login(Arg.IsAny <string>(), Arg.IsAny <IAuthenticationInformation>()))
            .IgnoreInstance()
            .Returns(true)
            .MustBeCalled();

            Mock.Arrange(() => Client.SwitchEnterprise(tenantId))
            .IgnoreInstance()
            .DoNothing()
            .MustBeCalled();

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.IsInstanceOfType(results[0].BaseObject, typeof(BaseAbiquoClient));
            var result = (BaseAbiquoClient)results[0].BaseObject;

            Assert.IsNotNull(result);
            Assert.AreEqual(User.Id, result.CurrentUserInformation.Id);

            Mock.Assert(Client);
        }
Ejemplo n.º 2
0
        public void InvokeWithInvalidNameParameterThrowsParameterBindingValidationException()
        {
            var invalidName = "invalid-name";
            var parameters  = string.Format("-Name '{0}'", invalidName);

            PsCmdletAssert.Invoke(sut, parameters);
        }
Ejemplo n.º 3
0
        public void InvokeParameterSetNameSucceedsAndReturnsCollection()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetAllVirtualMachines())
            .Returns(VirtualMachines)
            .MustBeCalled();

            // this Id does not exist
            var parameters = @"-Name MachineWithDuplicateName";

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);

            var result0 = results[0].BaseObject as VirtualMachine;

            Assert.IsNotNull(result0, results[0].BaseObject.GetType().FullName);
            Assert.AreEqual("MachineWithDuplicateName".ToLower(), result0.Name.ToLower());

            var result1 = results[1].BaseObject as VirtualMachine;

            Assert.IsNotNull(result1, results[1].BaseObject.GetType().FullName);
            Assert.AreEqual("MachineWithDuplicateName".ToLower(), result1.Name.ToLower());

            Assert.AreNotEqual(result0.Id, result1.Id);

            Mock.Assert(() => CurrentClient.GetAllVirtualMachines());
        }
        public void InvokeParameterSetIdWriterErrorRecord()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetVirtualDataCenter(Arg.IsAny <int>()))
            .Throws(new Exception("baseException"))
            .MustBeCalled();

            // this Id does not exist
            var parameters = @"-Id 9999";

            Action <IList <ErrorRecord> > errorHandler = er =>
            {
                Assert.IsNotNull(er);

                Assert.AreEqual(2, er.Count);

                var er0 = er[0];
                Assert.IsTrue(er0.Exception.Message.Contains("baseException"));

                var er1 = er[1];
                Assert.IsTrue(er1.Exception.Message.Contains("9999"));
            };
            var results = PsCmdletAssert.Invoke(sut, parameters, errorHandler);

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);

            Mock.Assert(() => CurrentClient.GetVirtualDataCenter(Arg.IsAny <int>()));
        }
        public void InvokeParameterSetIdSucceeds()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetVirtualDataCenter(Arg.IsAny <int>()))
            .Returns(VirtualDataCenters.Collection.First(e => e.Id == 42))
            .MustBeCalled();

            // this Id does not exist
            var parameters = @"-Id 42";

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var result = results[0].BaseObject as VirtualDataCenter;

            Assert.IsNotNull(result, results[0].BaseObject.GetType().FullName);
            Assert.AreEqual(42, result.Id);
            Assert.AreEqual("Edgar", result.Name);

            Mock.Assert(() => CurrentClient.GetVirtualDataCenter(Arg.IsAny <int>()));
        }
Ejemplo n.º 6
0
        public void InvokeParameterSetNameSucceeds()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetAllVirtualMachines())
            .Returns(VirtualMachines)
            .MustBeCalled();

            // this Id does not exist
            var parameters = @"-Name Edgar";

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var result = results[0].BaseObject as VirtualMachine;

            Assert.IsNotNull(result, results[0].BaseObject.GetType().FullName);
            Assert.AreEqual(42, result.Id);
            Assert.AreEqual("Edgar", result.Name);

            Mock.Assert(() => CurrentClient.GetAllVirtualMachines());
        }
Ejemplo n.º 7
0
        public void InvokeNewAclWithValidParametersCallsApiAndCreatesAcl()
        {
            // Arrange
            var coreContext             = Mock.Create <Api::Net.Appclusive.Api.Core.Core>();
            var response                = Mock.Create <DataServiceResponse>();
            var changeOperationResponse = Mock.Create <ChangeOperationResponse>();

            Mock.Arrange(() => coreContext.AddToAcls(Arg.IsAny <Acl>()))
            .DoNothing()
            .OccursOnce();

            Mock.Arrange(() => coreContext.SaveChanges())
            .Returns(response)
            .OccursOnce();

            Mock.Arrange(() => response.FirstOrDefault())
            .Returns(changeOperationResponse)
            .OccursOnce();

            Mock.Arrange(() => changeOperationResponse.StatusCode)
            .Returns(201)
            .OccursOnce();

            var svc = new Dictionary <string, DataServiceContextBase>
            {
                {
                    nameof(Api::Net.Appclusive.Api.Core.Core),
                    coreContext
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                { nameof(NewAcl.Name), ACL_NAME },
                { nameof(NewAcl.ParentId), PARENT_ID },
                { nameof(svc), svc }
            };

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var acl = results[0].BaseObject as Acl;

            Assert.IsNotNull(acl);
            Assert.AreEqual(ACL_NAME, acl.Name);
            Assert.AreEqual(PARENT_ID, acl.ParentId);
            Assert.IsFalse(acl.NoInheritance);

            Mock.Assert(coreContext);
            Mock.Assert(response);
            Mock.Assert(changeOperationResponse);
        }
        public void TestCase1()
        {
            var sut = typeof(ArbitraryCmdlet);

            var parameters = "-TestCase 1 -StringParameter2 'tralala';";
            var result     = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.Count);
        }
Ejemplo n.º 9
0
        public void InvokeParameterSetListWithInvalidVdcVappCombination()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            // this Id does not exist
            var parameters = @"-VirtualApplianceId 42";

            var results = PsCmdletAssert.Invoke(sut, parameters, ex => ex);
        }
Ejemplo n.º 10
0
        public void InvokeWithInvalidStringThrowsIncompleteParseException()
        {
            // Arrange
            // missing string terminator
            var parameters = string.Format(@"-ApiBaseUri {0} -User '{1} -Password '{2}'", _apiBaseUri, _username, _password);

            // Act
            PsCmdletAssert.Invoke(sut, parameters);

            // Assert
        }
        public void InvokeWithEmptyPathResolvesDefaultConfigurationFileNameThrowsContractException()
        {
            Mock.SetupStatic(typeof(File));
            Mock.Arrange(() => File.Exists(Arg.IsAny <string>()))
            .OnAllThreads()
            .Returns(false);

            var parameters = @";";

            PsCmdletAssert.Invoke(sut, parameters, ex => ex);
        }
        public void InvokeWithExistingDirectoryAsPathThrowsContractException()
        {
            Mock.SetupStatic(typeof(Directory));
            Mock.Arrange(() => Directory.Exists(Arg.IsAny <string>()))
            .OnAllThreads()
            .Returns(true);

            var parameters = @"-Path existing-directory";

            PsCmdletAssert.Invoke(sut, parameters, ex => ex);
        }
Ejemplo n.º 13
0
        public void InvokeWithInvalidStringThrowsIncompleteParseException()
        {
            // Arrange
            // missing string terminator
            var parameters = string.Format(@"-Name '{0}", ACL_NAME);

            // Act
            PsCmdletAssert.Invoke(sut, parameters);

            // Assert
        }
Ejemplo n.º 14
0
        public void InvokeGetTenantWithNameParameterCallsApiWithFilterAndReturnsResult()
        {
            // Arrange
            var tenant     = CreateSampleTenant();
            var tenant2    = CreateSampleTenant();
            var tenantName = tenant.Name;
            var tenants    = new List <Tenant>
            {
                tenant,
                tenant2
            };

            var coreContext      = Mock.Create <Api::Net.Appclusive.Api.Core.Core>();
            var dataServiceQuery = Mock.Create <DataServiceQuery <Tenant> >();

            Mock.Arrange(() => coreContext.Tenants)
            .Returns(dataServiceQuery)
            .OccursOnce();

            var query = string.Format(Odata.BY_NAME_QUERY_TEMPLATE, tenantName);

            Mock.Arrange(() => dataServiceQuery.Filter(query).Execute())
            .Returns(tenants)
            .OccursOnce();

            var svc = new Dictionary <string, DataServiceContextBase>
            {
                {
                    nameof(Api::Net.Appclusive.Api.Core.Core),
                    coreContext
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                { nameof(GetTenant.Name), tenantName },
                { nameof(svc), svc }
            };

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);
            var result0 = results[0].BaseObject as Tenant;
            var result1 = results[1].BaseObject as Tenant;

            Assert.IsNotNull(result0);
            Assert.IsNotNull(result1);

            Mock.Assert(coreContext);
            Mock.Assert(dataServiceQuery);
        }
        public void InvokeWithEmptyPathAndDisplayOnlyTrueSucceeds()
        {
            var parameters = @"-DisplayOnly:$true; Get-Variable net_Appclusive_PS_Client -ValueOnly -ErrorAction:SilentlyContinue;";
            var results    = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            var result = results[0].BaseObject;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ModuleContext));
        }
        public void InvokeWithEmptyPathSucceeds()
        {
            var parameters = @";";
            var results    = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            var result = results[0].BaseObject;

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ModuleContext));
        }
Ejemplo n.º 17
0
        public void InvokeNotLoggedInThrowsContractException()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(false);

            var parameters = @"-ListAvailable";

            var results = PsCmdletAssert.Invoke(sut, parameters, ex => ex);

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);
        }
Ejemplo n.º 18
0
        public void InvokeWithInvalidStringThrowsIncompleteParseException()
        {
            var user     = "******";
            var password = "******";
            // missing string terminator
            var parameters = string.Format(@"-Uri httpS://abiquo.example.com/api/ -User '{0} -Password '{1}'", user, password);
            var results    = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            var result = results[0].BaseObject.ToString();

            Assert.AreEqual("tralala", result);
        }
Ejemplo n.º 19
0
        public void InvokeGetTenantListAvailableCallsApiAndReturnsResult()
        {
            // Arrange
            var tenant  = CreateSampleTenant();
            var tenant2 = CreateSampleTenant();
            var tenants = new List <Tenant>
            {
                tenant,
                tenant2
            };

            var coreContext      = Mock.Create <Api::Net.Appclusive.Api.Core.Core>();
            var dataServiceQuery = Mock.Create <DataServiceQuery <Tenant> >();

            Mock.Arrange(() => coreContext.Tenants)
            .Returns(dataServiceQuery)
            .OccursOnce();

            Mock.Arrange(() => dataServiceQuery.Execute())
            .Returns(tenants)
            .OccursOnce();

            var svc = new Dictionary <string, DataServiceContextBase>
            {
                {
                    nameof(Api::Net.Appclusive.Api.Core.Core),
                    coreContext
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                { nameof(svc), svc }
            };

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);
            var result0 = results[0].BaseObject as Tenant;
            var result1 = results[1].BaseObject as Tenant;

            Assert.IsNotNull(result0);
            Assert.IsNotNull(result1);

            Mock.Assert(coreContext);
            Mock.Assert(dataServiceQuery);
        }
Ejemplo n.º 20
0
        public void InvokeWithInvalidTokenThrowsContractException()
        {
            var uri        = new Uri("httpS://abiquo.example.com/api/");
            var token      = "invalid-token";
            var parameters = string.Format(@"-Uri {0} -OAuth2Token '{1}'", uri, token);

            Mock.Arrange(() => Client.Login(Arg.IsAny <string>(), Arg.IsAny <IAuthenticationInformation>()))
            .IgnoreInstance()
            .Returns(false);

            var results = PsCmdletAssert.Invoke(sut, parameters, ex => ex);

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);
        }
Ejemplo n.º 21
0
        public void InvokeWithParameterSetPlainWithValidTenantIdSucceeds()
        {
            // Arrange
            var parameters = string.Format(@"-ApiBaseUri {0} -User '{1}' -Password '{2}' -TenantId {3}", _apiBaseUri, _username, _password, Identity.Tenant.SYSTEM_TID);

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var svc = results[0].BaseObject as Dictionary <string, DataServiceContextBase>;

            Assert.IsNotNull(svc);
            Assert.AreEqual(2, svc.Count);
        }
Ejemplo n.º 22
0
        public void InvokeWithParameterSetCredSucceeds()
        {
            // Arrange
            var parameters = string.Format(@"-ApiBaseUri {0} -Credential $([pscredential]::new('{1}', (ConvertTo-SecureString -AsPlainText -String {2} -Force)))", _apiBaseUri, _username, _password);

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var svc = results[0].BaseObject as Dictionary <string, DataServiceContextBase>;

            Assert.IsNotNull(svc);
            Assert.AreEqual(2, svc.Count);
        }
Ejemplo n.º 23
0
        public void InvokeGetTenantWithIdParameterCallsApiWithFilterAndReturnsResult()
        {
            // Arrange
            var tenant   = CreateSampleTenant();
            var tenantId = tenant.Id;

            var coreContext      = Mock.Create <Api::Net.Appclusive.Api.Core.Core>();
            var dataServiceQuery = Mock.Create <DataServiceQuery <Tenant> >();

            Mock.Arrange(() => coreContext.Tenants)
            .Returns(dataServiceQuery)
            .OccursOnce();

            Mock.Arrange(() => dataServiceQuery.Id(tenantId))
            .Returns(tenant)
            .OccursOnce();

            var svc = new Dictionary <string, DataServiceContextBase>
            {
                {
                    nameof(Api::Net.Appclusive.Api.Core.Core),
                    coreContext
                }
            };

            var parameters = new Dictionary <string, object>()
            {
                { nameof(GetTenant.Id), tenantId },
                { nameof(svc), svc }
            };

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            var result0 = results[0].BaseObject as Tenant;

            Assert.IsNotNull(result0);
            Assert.AreEqual(tenantId, result0.Id);

            Mock.Assert(coreContext);
            Mock.Assert(dataServiceQuery);
        }
Ejemplo n.º 24
0
        public void InvokeParameterSetListAvailableSucceeds()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetAllVirtualMachines())
            .Returns(VirtualMachines)
            .MustBeCalled();

            var parameters = @"-ListAvailable";

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(3, results.Count);

            Mock.Assert(() => CurrentClient.GetAllVirtualMachines());
        }
Ejemplo n.º 25
0
        public void InvokeParameterSetIdWriterErrorRecord()
        {
            Mock.Arrange(() => CurrentClient.IsLoggedIn)
            .Returns(true);

            Mock.Arrange(() => CurrentClient.GetAllVirtualMachines())
            .Returns(VirtualMachines)
            .MustBeCalled();

            // this Id does not exist
            var parameters = @"-Id 9999";

            var results = PsCmdletAssert.Invoke(sut, parameters, er => { Assert.IsTrue(er.Single().Exception.Message.Contains("9999")); });

            Assert.IsNotNull(results);
            Assert.AreEqual(0, results.Count);

            Mock.Assert(() => CurrentClient.GetAllVirtualMachines());
        }
        public void InvokeWithEmptyPathAndDisplayOnlyFalseSucceeds()
        {
            var parameters = @"-DisplayOnly:$false; Get-Variable net_Appclusive_PS_Client -ValueOnly;";
            var results    = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(2, results.Count);

            var moduleContext = results[0].BaseObject;

            Assert.IsNotNull(moduleContext);
            Assert.IsInstanceOfType(moduleContext, typeof(ModuleContext));

            var variable = results[1].BaseObject;

            Assert.IsNotNull(variable);
            Assert.IsInstanceOfType(variable, typeof(ModuleContext));

            Assert.AreEqual(variable, moduleContext);
        }
Ejemplo n.º 27
0
        public void InvokeWithParameterSetOAuth2Succeeds()
        {
            var uri        = new Uri("httpS://abiquo.example.com/api/");
            var token      = "arbitrary-token";
            var parameters = string.Format(@"-Uri {0} -OAuth2Token '{1}'", uri, token);

            Mock.Arrange(() => Client.Login(Arg.IsAny <string>(), Arg.IsAny <IAuthenticationInformation>()))
            .IgnoreInstance()
            .Returns(true);

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.IsInstanceOfType(results[0].BaseObject, typeof(BaseAbiquoClient));
            var result = (BaseAbiquoClient)results[0].BaseObject;

            Assert.IsNotNull(result);
            Assert.AreEqual(User.Id, result.CurrentUserInformation.Id);
        }
Ejemplo n.º 28
0
        public void InvokeWithParameterSetCredSucceeds()
        {
            var uri        = new Uri("httpS://abiquo.example.com/api/");
            var user       = "******";
            var password   = "******";
            var parameters = string.Format(@"-Uri {0} -Credential $([pscredential]::new('{1}', (ConvertTo-SecureString -AsPlainText -String {2} -Force)))", uri, user, password);

            Mock.Arrange(() => Client.Login(Arg.IsAny <string>(), Arg.IsAny <IAuthenticationInformation>()))
            .IgnoreInstance()
            .Returns(true);

            var results = PsCmdletAssert.Invoke(sut, parameters);

            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            Assert.IsInstanceOfType(results[0].BaseObject, typeof(BaseAbiquoClient));
            var result = (BaseAbiquoClient)results[0].BaseObject;

            Assert.IsNotNull(result);
            Assert.AreEqual(User.Id, result.CurrentUserInformation.Id);
        }
Ejemplo n.º 29
0
        public void InvokeWithParameterSetConfigSucceeds()
        {
            // Arrange
            var fileInfo             = ModuleConfiguration.ResolveConfigurationFileInfo(null);
            var moduleContextSection = ModuleConfiguration.GetModuleContextConfigurationSection(fileInfo);

            ModuleConfiguration.SetModuleContext(moduleContextSection);

            var parameters = "-UseModuleContext";

            // Act
            var results = PsCmdletAssert.Invoke(sut, parameters);

            // Assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);

            var svc = results[0].BaseObject as Dictionary <string, DataServiceContextBase>;

            Assert.IsNotNull(svc);
            Assert.AreEqual(2, svc.Count);

            ModuleConfiguration.SetModuleContext(new ModuleContextConfigurationSection());
        }
Ejemplo n.º 30
0
 public void ParameterSetIdHasExpectedOutputType()
 {
     PsCmdletAssert.HasOutputType(sut, typeof(VirtualMachine), GetMachine.ParameterSets.ID);
 }