예제 #1
0
        public void ResponseParse_ActivationStarted_Test()
        {
            SmartHomeResponse responseFromString = JsonConvert.DeserializeObject <SmartHomeResponse>(ACTIVATION_STARTED);

            //Context check
            Assert.NotNull(responseFromString.Context);
            Assert.NotNull(responseFromString.Context.Properties);
            Assert.Equal(1, responseFromString.Context.Properties.Count);
            // Property 1
            TestFunctionsV3.TestBasicHealthCheckProperty(responseFromString.Context.Properties[0], ConnectivityModes.OK, DateTime.Parse("2017-09-27T18:30:30.45Z"));
            //Event Check
            Assert.NotNull(responseFromString.Event);
            Assert.Equal(typeof(Event), responseFromString.Event.GetType());
            Event e = responseFromString.Event as Event;

            TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA_SCENECONTROLLER, HeaderNames.ACTIVATION_STARTED);
            Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken);
            TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001");
            TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon");
            Assert.NotNull(e.Payload);
            Assert.Equal(typeof(SceneStartedResponsePayload), responseFromString.GetPayloadType());
            SceneStartedResponsePayload p = e.Payload as SceneStartedResponsePayload;

            Assert.NotNull(p.Cause);
            Assert.Equal(CauseTypes.VOICE_INTERACTION, p.Cause.Type);
            Assert.Equal(DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), p.Timestamp);
        }
예제 #2
0
        public void ResponseCreation_Deactivate_Test()
        {
            SmartHomeRequest  request  = JsonConvert.DeserializeObject <SmartHomeRequest>(DEACTIVATE);
            SmartHomeResponse response = new SmartHomeResponse(request.Directive.Header);

            Assert.Null(response.Context);
            response.Context = new Context();
            ConnectivityPropertyValue value = new ConnectivityPropertyValue(ConnectivityModes.OK);
            Property p2 = new Property(Namespaces.ALEXA_ENDPOINTHEALTH, PropertyNames.CONNECTIVITY, value,
                                       DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200);

            response.Context.Properties.Add(p2);
            Assert.NotNull(response.Event);
            Assert.Equal(typeof(Event), response.Event.GetType());
            Event e = response.Event as Event;

            TestFunctionsV3.CheckResponseCreatedBaseHeader(e.Header, request.Directive.Header, Namespaces.ALEXA_SCENECONTROLLER, HeaderNames.DEACTIVATION_STARTED);
            Assert.Null(e.Endpoint);
            e.Endpoint = new Endpoint("endpoint-001", new NET.JsonObjects.Scopes.BearerToken("access-token-from-Amazon"));
            Assert.NotNull(e.Payload);
            Assert.Equal(typeof(SceneStartedResponsePayload), response.GetPayloadType());
            SceneStartedResponsePayload p = response.Event.Payload as SceneStartedResponsePayload;

            Assert.Null(p.Cause);
            Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response));
            p.Cause     = new Cause(CauseTypes.APP_INTERACTION);
            p.Timestamp = DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime();
            Assert.NotNull(JsonConvert.SerializeObject(response));
            Util.Util.WriteJsonToConsole("Deactivate", response);
        }