public void EnvironmentRequestMapperTest()
        {
            Environment     source      = DataFactory.CreateEnvironmentRequest();
            environmentType destination = MapperFactory.CreateInstance <Environment, environmentType>(source);

            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.IconURI, destination.applicationInfo.adapterProduct.iconURI);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.ProductName, destination.applicationInfo.adapterProduct.productName);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.ProductVersion, destination.applicationInfo.adapterProduct.productVersion);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.VendorName, destination.applicationInfo.adapterProduct.vendorName);
            Assert.AreEqual(source.ApplicationInfo.ApplicationKey, destination.applicationInfo.applicationKey);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.IconURI, destination.applicationInfo.applicationProduct.iconURI);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.ProductName, destination.applicationInfo.applicationProduct.productName);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.ProductVersion, destination.applicationInfo.applicationProduct.productVersion);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.VendorName, destination.applicationInfo.applicationProduct.vendorName);
            Assert.AreEqual(source.ApplicationInfo.DataModelNamespace, destination.applicationInfo.dataModelNamespace);
            Assert.AreEqual(source.ApplicationInfo.SupportedInfrastructureVersion, destination.applicationInfo.supportedInfrastructureVersion);
            Assert.AreEqual(source.ApplicationInfo.Transport, destination.applicationInfo.transport);
            Assert.AreEqual(source.AuthenticationMethod, destination.authenticationMethod);
            Assert.AreEqual(source.ConsumerName, destination.consumerName);
            Assert.AreEqual(source.DefaultZone.Description, destination.defaultZone.description);
            Assert.AreEqual(source.DefaultZone.Id.ToString(), destination.defaultZone.id);
            Assert.AreEqual(source.InstanceId, destination.instanceId);
            Assert.AreEqual(source.SessionToken, destination.sessionToken);
            Assert.AreEqual(source.SolutionId, destination.solutionId);
            Assert.AreEqual(source.Type.ToString(), destination.type.ToString());
            Assert.AreEqual(source.UserToken, destination.userToken);
            Assert.AreEqual(source.Id.ToString(), destination.id);
        }
        public void EnvironmentResponseMapperTest()
        {
            Environment     source      = DataFactory.CreateEnvironmentResponse();
            environmentType destination = MapperFactory.CreateInstance <Environment, environmentType>(source);

            // Assert that the mapping was successful.
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.IconURI, destination.applicationInfo.adapterProduct.iconURI);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.ProductName, destination.applicationInfo.adapterProduct.productName);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.ProductVersion, destination.applicationInfo.adapterProduct.productVersion);
            Assert.AreEqual(source.ApplicationInfo.AdapterProduct.VendorName, destination.applicationInfo.adapterProduct.vendorName);
            Assert.AreEqual(source.ApplicationInfo.ApplicationKey, destination.applicationInfo.applicationKey);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.IconURI, destination.applicationInfo.applicationProduct.iconURI);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.ProductName, destination.applicationInfo.applicationProduct.productName);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.ProductVersion, destination.applicationInfo.applicationProduct.productVersion);
            Assert.AreEqual(source.ApplicationInfo.ApplicationProduct.VendorName, destination.applicationInfo.applicationProduct.vendorName);
            Assert.AreEqual(source.ApplicationInfo.DataModelNamespace, destination.applicationInfo.dataModelNamespace);
            Assert.AreEqual(source.ApplicationInfo.SupportedInfrastructureVersion, destination.applicationInfo.supportedInfrastructureVersion);
            Assert.AreEqual(source.ApplicationInfo.Transport, destination.applicationInfo.transport);
            Assert.AreEqual(source.AuthenticationMethod, destination.authenticationMethod);
            Assert.AreEqual(source.ConsumerName, destination.consumerName);
            Assert.AreEqual(source.DefaultZone.Description, destination.defaultZone.description);
            Assert.AreEqual(source.DefaultZone.SifId, destination.defaultZone.id);
            Assert.AreEqual(source.Id.ToString(), destination.id);
            int index = 0;

            foreach (InfrastructureService sourceProperty in source.InfrastructureServices.Values)
            {
                Assert.AreEqual(sourceProperty.Name.ToString(), destination.infrastructureServices[index].name.ToString());
                Assert.AreEqual(sourceProperty.Value, destination.infrastructureServices[index].Value);
                index++;
            }

            index = 0;

            foreach (ProvisionedZone sourceProvisionedZone in source.ProvisionedZones.Values)
            {
                Assert.AreEqual(sourceProvisionedZone.SifId, destination.provisionedZones[index].id);
                int sourceIndex = 0;

                foreach (Model.Infrastructure.Service sourceService in sourceProvisionedZone.Services)
                {
                    Assert.AreEqual(sourceService.ContextId, destination.provisionedZones[index].services[sourceIndex].contextId);
                    Assert.AreEqual(sourceService.Name, destination.provisionedZones[index].services[sourceIndex].name);
                    Assert.AreEqual(sourceService.Type, destination.provisionedZones[index].services[sourceIndex].type);
                    int rightIndex = 0;

                    foreach (Right sourceRight in sourceService.Rights.Values)
                    {
                        Assert.AreEqual(sourceRight.Type, destination.provisionedZones[index].services[sourceIndex].rights[rightIndex].type);
                        Assert.AreEqual(sourceRight.Value, destination.provisionedZones[index].services[sourceIndex].rights[rightIndex].Value);
                        rightIndex++;
                    }

                    sourceIndex++;
                }

                index++;
            }
        }
Пример #3
0
 public override HttpResponseMessage Create
     (environmentType item,
     string authenticationMethod           = null,
     string consumerName                   = null,
     string solutionId                     = null,
     string dataModelNamespace             = null,
     string supportedInfrastructureVersion = null,
     string transport   = null,
     string productName = null)
 {
     return(base.Create(item, authenticationMethod, consumerName, solutionId, dataModelNamespace, supportedInfrastructureVersion, transport, productName));
 }
Пример #4
0
        /// <summary>
        /// <see cref="AuthenticationService.SharedSecret(string)">SharedSecret</see>
        /// </summary>
        protected override string SharedSecret(string sessionToken)
        {
            environmentType environment = environmentService.RetrieveBySessionToken(sessionToken);

            if (environment == null)
            {
                throw new InvalidSessionException();
            }

            ApplicationRegister applicationRegister = applicationRegisterService.RetrieveByApplicationKey(environment.applicationInfo.applicationKey);

            return(applicationRegister == null ? null : applicationRegister.SharedSecret);
        }
Пример #5
0
    GameObject getRandomEnvironmentObject(environmentType type)
    {
        int index;

        switch (type)
        {
        case environmentType.traversableFolliage:
            index = rng.Next(0, traversableFolliageObject.Length);
            return(traversableFolliageObject[index]);

        case environmentType.nonTraversableFolliage:
            index = rng.Next(0, nonTraversableFolliageObject.Length);
            return(nonTraversableFolliageObject[index]);

        case environmentType.traversableObject:
            index = rng.Next(0, traversableObjectObject.Length);
            return(traversableObjectObject[index]);

        case environmentType.nonTraversableObject:
            index = rng.Next(0, nonTraversableObjectObject.Length);
            return(nonTraversableObjectObject[index]);

        case environmentType.traversableStructure:
            index = rng.Next(0, traversableStructureObject.Length);
            return(traversableStructureObject[index]);

        case environmentType.nonTraversableStructure:
            index = rng.Next(0, nonTraversableStructureObject.Length);
            return(nonTraversableStructureObject[index]);

        case environmentType.particle:
            index = rng.Next(0, particleObject.Length);
            return(particleObject[index]);

        default:
            Debug.Log("getRandomEnvironmentObject() error.");
            return(null);
        }
    }
        public void Retrieve()
        {
            Environment saved = DataFactory.CreateEnvironmentRequest();

            (new EnvironmentRepository()).Save(saved);
            environmentType retrieved = (new EnvironmentService()).Retrieve(saved.Id);

            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.IconURI, retrieved.applicationInfo.adapterProduct.iconURI);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.ProductName, retrieved.applicationInfo.adapterProduct.productName);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.ProductVersion, retrieved.applicationInfo.adapterProduct.productVersion);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.VendorName, retrieved.applicationInfo.adapterProduct.vendorName);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationKey, retrieved.applicationInfo.applicationKey);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.IconURI, retrieved.applicationInfo.applicationProduct.iconURI);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.ProductName, retrieved.applicationInfo.applicationProduct.productName);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.ProductVersion, retrieved.applicationInfo.applicationProduct.productVersion);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.VendorName, retrieved.applicationInfo.applicationProduct.vendorName);
            Assert.AreEqual(saved.ApplicationInfo.DataModelNamespace, retrieved.applicationInfo.dataModelNamespace);
            Assert.AreEqual(saved.ApplicationInfo.SupportedInfrastructureVersion, retrieved.applicationInfo.supportedInfrastructureVersion);
            Assert.AreEqual(saved.ApplicationInfo.Transport, retrieved.applicationInfo.transport);
            Assert.AreEqual(saved.AuthenticationMethod, retrieved.authenticationMethod);
            Assert.AreEqual(saved.ConsumerName, retrieved.consumerName);
            Assert.AreEqual(saved.DefaultZone.Description, retrieved.defaultZone.description);
        }
        public void Retrieve()
        {
            // Save a new Environment and then retrieve it using it's identifier.
            Environment     saved         = DataFactory.CreateEnvironmentRequest();
            Guid            environmentId = environmentRepository.Save(saved);
            environmentType retrieved     = environmentService.Retrieve(environmentId);

            // Assert that the retrieved Environment matches the saved Environment.
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.IconURI, retrieved.applicationInfo.adapterProduct.iconURI);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.ProductName, retrieved.applicationInfo.adapterProduct.productName);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.ProductVersion, retrieved.applicationInfo.adapterProduct.productVersion);
            Assert.AreEqual(saved.ApplicationInfo.AdapterProduct.VendorName, retrieved.applicationInfo.adapterProduct.vendorName);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationKey, retrieved.applicationInfo.applicationKey);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.IconURI, retrieved.applicationInfo.applicationProduct.iconURI);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.ProductName, retrieved.applicationInfo.applicationProduct.productName);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.ProductVersion, retrieved.applicationInfo.applicationProduct.productVersion);
            Assert.AreEqual(saved.ApplicationInfo.ApplicationProduct.VendorName, retrieved.applicationInfo.applicationProduct.vendorName);
            Assert.AreEqual(saved.ApplicationInfo.DataModelNamespace, retrieved.applicationInfo.dataModelNamespace);
            Assert.AreEqual(saved.ApplicationInfo.SupportedInfrastructureVersion, retrieved.applicationInfo.supportedInfrastructureVersion);
            Assert.AreEqual(saved.ApplicationInfo.Transport, retrieved.applicationInfo.transport);
            Assert.AreEqual(saved.AuthenticationMethod, retrieved.authenticationMethod);
            Assert.AreEqual(saved.ConsumerName, retrieved.consumerName);
            Assert.AreEqual(saved.DefaultZone.Description, retrieved.defaultZone.description);
        }
Пример #8
0
        /// <summary>
        /// <see cref="AuthenticationService.GetEnvironmentBySessionToken(string)">GetEnvironmentBySessionToken</see>
        /// </summary>
        public override Environment GetEnvironmentBySessionToken(string sessionToken)
        {
            environmentType environment = environmentService.RetrieveBySessionToken(sessionToken);

            return(MapperFactory.CreateInstance <environmentType, Environment>(environment));
        }
Пример #9
0
 void spawnRandomNonTraversableObject(environmentType type, Pos position)
 {
     mapManager.instantiate_environment(getRandomEnvironmentObject(type), position, false);
 }
        /// <summary>
        /// <see cref="IRegistrationService.Register(ref Environment)">Register</see>
        /// </summary>
        public Environment Register(ref Environment environment)
        {
            if (Registered)
            {
                return(CurrentEnvironment);
            }

            if (sessionService.HasSession(environment.ApplicationInfo.ApplicationKey, environment.SolutionId, environment.UserToken, environment.InstanceId))
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("Session token already exists for this object service (Consumer/Provider).");
                }

                string storedSessionToken = sessionService.RetrieveSessionToken(environment.ApplicationInfo.ApplicationKey, environment.SolutionId, environment.UserToken, environment.InstanceId);
                AuthorisationToken = authorisationTokenService.Generate(storedSessionToken, settings.SharedSecret);
                string storedEnvironmentUrl = sessionService.RetrieveEnvironmentUrl(environment.ApplicationInfo.ApplicationKey, environment.SolutionId, environment.UserToken, environment.InstanceId);
                string environmentXml       = HttpUtils.GetRequest(storedEnvironmentUrl, AuthorisationToken);

                if (log.IsDebugEnabled)
                {
                    log.Debug("Environment XML from GET request ...");
                }
                if (log.IsDebugEnabled)
                {
                    log.Debug(environmentXml);
                }

                environmentType environmentTypeToDeserialise = SerialiserFactory.GetXmlSerialiser <environmentType>().Deserialise(environmentXml);
                Environment     environmentResponse          = MapperFactory.CreateInstance <environmentType, Environment>(environmentTypeToDeserialise);

                sessionToken   = environmentResponse.SessionToken;
                environmentUrl = environmentResponse.InfrastructureServices[InfrastructureServiceNames.environment].Value;

                if (log.IsDebugEnabled)
                {
                    log.Debug("Environment URL is " + environmentUrl + ".");
                }

                if (!storedSessionToken.Equals(sessionToken) || !storedEnvironmentUrl.Equals(environmentUrl))
                {
                    AuthorisationToken = authorisationTokenService.Generate(sessionToken, settings.SharedSecret);
                    sessionService.RemoveSession(storedSessionToken);
                    sessionService.StoreSession(environmentResponse.ApplicationInfo.ApplicationKey, sessionToken, environmentUrl, environmentResponse.SolutionId, environmentResponse.UserToken, environmentResponse.InstanceId);
                }

                environment = environmentResponse;
            }
            else
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("Session token does not exist for this object service (Consumer/Provider).");
                }

                AuthorisationToken initialToken = authorisationTokenService.Generate(environment.ApplicationInfo.ApplicationKey, settings.SharedSecret);
                environmentType    environmentTypeToSerialise = MapperFactory.CreateInstance <Environment, environmentType>(environment);
                string             body           = SerialiserFactory.GetXmlSerialiser <environmentType>().Serialise(environmentTypeToSerialise);
                string             environmentXml = HttpUtils.PostRequest(settings.EnvironmentUrl, initialToken, body);

                if (log.IsDebugEnabled)
                {
                    log.Debug("Environment XML from POST request ...");
                }
                if (log.IsDebugEnabled)
                {
                    log.Debug(environmentXml);
                }

                try
                {
                    environmentType environmentTypeToDeserialise = SerialiserFactory.GetXmlSerialiser <environmentType>().Deserialise(environmentXml);
                    Environment     environmentResponse          = MapperFactory.CreateInstance <environmentType, Environment>(environmentTypeToDeserialise);

                    sessionToken   = environmentResponse.SessionToken;
                    environmentUrl = environmentResponse.InfrastructureServices[InfrastructureServiceNames.environment].Value;

                    if (log.IsDebugEnabled)
                    {
                        log.Debug("Environment URL is " + environmentUrl + ".");
                    }

                    AuthorisationToken = authorisationTokenService.Generate(sessionToken, settings.SharedSecret);
                    sessionService.StoreSession(environment.ApplicationInfo.ApplicationKey, sessionToken, environmentUrl, environmentResponse.SolutionId, environmentResponse.UserToken, environmentResponse.InstanceId);
                    environment = environmentResponse;
                }
                catch (Exception)
                {
                    if (environmentUrl != null)
                    {
                        HttpUtils.DeleteRequest(environmentUrl, AuthorisationToken);
                    }
                    else if (!string.IsNullOrWhiteSpace(TryParseEnvironmentUrl(environmentXml)))
                    {
                        HttpUtils.DeleteRequest(TryParseEnvironmentUrl(environmentXml), AuthorisationToken);
                    }

                    throw;
                }
            }

            CurrentEnvironment = environment;
            Registered         = true;
            return(CurrentEnvironment);
        }
        /// <summary>
        /// <see cref="IRegistrationService.Register(ref Environment)">Register</see>
        /// </summary>
        public Environment Register(ref Environment environment)
        {
            if (Registered)
            {
                return(CurrentEnvironment);
            }

            if (sessionService.HasSession(
                    environment.ApplicationInfo.ApplicationKey,
                    environment.SolutionId,
                    environment.UserToken,
                    environment.InstanceId))
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("Session token already exists for this object service (Consumer/Provider).");
                }

                string storedSessionToken = sessionService.RetrieveSessionToken(
                    environment.ApplicationInfo.ApplicationKey,
                    environment.SolutionId,
                    environment.UserToken,
                    environment.InstanceId);
                authorisationToken = authorisationTokenService.Generate(storedSessionToken, settings.SharedSecret);
                string storedEnvironmentUrl = sessionService.RetrieveEnvironmentUrl(
                    environment.ApplicationInfo.ApplicationKey,
                    environment.SolutionId,
                    environment.UserToken,
                    environment.InstanceId);
                string environmentBody = HttpUtils.GetRequest(
                    storedEnvironmentUrl,
                    authorisationToken,
                    settings.CompressPayload,
                    contentTypeOverride: settings.ContentType.ToDescription(),
                    acceptOverride: settings.Accept.ToDescription());

                if (log.IsDebugEnabled)
                {
                    log.Debug($"Environment response from GET request ...\n{environmentBody}");
                }

                environmentType environmentTypeToDeserialise =
                    SerialiserFactory.GetSerialiser <environmentType>(settings.Accept).Deserialise(environmentBody);
                Environment environmentResponse =
                    MapperFactory.CreateInstance <environmentType, Environment>(environmentTypeToDeserialise);

                sessionToken   = environmentResponse.SessionToken;
                environmentUrl =
                    environmentResponse.InfrastructureServices[InfrastructureServiceNames.environment].Value;

                if (log.IsDebugEnabled)
                {
                    log.Debug($"Environment URL is {environmentUrl}.");
                }

                if (!storedSessionToken.Equals(sessionToken) || !storedEnvironmentUrl.Equals(environmentUrl))
                {
                    authorisationToken = authorisationTokenService.Generate(sessionToken, settings.SharedSecret);
                    sessionService.RemoveSession(storedSessionToken);
                    sessionService.StoreSession(
                        environmentResponse.ApplicationInfo.ApplicationKey,
                        sessionToken,
                        environmentUrl,
                        environmentResponse.SolutionId,
                        environmentResponse.UserToken,
                        environmentResponse.InstanceId);
                }

                environment = environmentResponse;
            }
            else
            {
                if (log.IsDebugEnabled)
                {
                    log.Debug("Session token does not exist for this object service (Consumer/Provider).");
                }

                string environmentBody = null;

                try
                {
                    AuthorisationToken initialToken = authorisationTokenService.Generate(
                        environment.ApplicationInfo.ApplicationKey,
                        settings.SharedSecret);
                    environmentType environmentTypeToSerialise =
                        MapperFactory.CreateInstance <Environment, environmentType>(environment);
                    string body = SerialiserFactory.GetSerialiser <environmentType>(settings.ContentType)
                                  .Serialise(environmentTypeToSerialise);
                    environmentBody = HttpUtils.PostRequest(
                        settings.EnvironmentUrl,
                        initialToken,
                        body,
                        settings.CompressPayload,
                        contentTypeOverride: settings.ContentType.ToDescription(),
                        acceptOverride: settings.Accept.ToDescription());

                    if (log.IsDebugEnabled)
                    {
                        log.Debug($"Environment response from POST request ...\n{environmentBody}");
                    }

                    environmentType environmentTypeToDeserialise =
                        SerialiserFactory.GetSerialiser <environmentType>(settings.Accept).Deserialise(environmentBody);
                    Environment environmentResponse =
                        MapperFactory.CreateInstance <environmentType, Environment>(environmentTypeToDeserialise);

                    sessionToken   = environmentResponse.SessionToken;
                    environmentUrl =
                        environmentResponse.InfrastructureServices[InfrastructureServiceNames.environment].Value;

                    if (log.IsDebugEnabled)
                    {
                        log.Debug($"Environment URL is {environmentUrl}.");
                    }

                    authorisationToken = authorisationTokenService.Generate(sessionToken, settings.SharedSecret);
                    sessionService.StoreSession(
                        environment.ApplicationInfo.ApplicationKey,
                        sessionToken,
                        environmentUrl,
                        environmentResponse.SolutionId,
                        environmentResponse.UserToken,
                        environmentResponse.InstanceId);
                    environment = environmentResponse;
                }
                catch (Exception e)
                {
                    if (environmentUrl != null)
                    {
                        HttpUtils.DeleteRequest(environmentUrl, authorisationToken, settings.CompressPayload);
                    }
                    else if (!string.IsNullOrWhiteSpace(TryParseEnvironmentUrl(environmentBody)))
                    {
                        HttpUtils.DeleteRequest(
                            TryParseEnvironmentUrl(environmentBody),
                            authorisationToken,
                            settings.CompressPayload);
                    }

                    throw new RegistrationException("Registration failed.", e);
                }
            }

            CurrentEnvironment = environment;
            Registered         = true;
            return(CurrentEnvironment);
        }