public void ResponseCreation_SetTemperatureSingleMode_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(SET_T_TEMPERATURE_SINGLEMODE_REQUEST); SmartHomeResponse response = new SmartHomeResponse(request.Directive.Header); Assert.Null(response.Context); response.Context = new Context(); Property p = new Property(Namespaces.ALEXA_THERMOSTATCONTROLLER, PropertyNames.TARGET_SETPOINT, new Setpoint(25.0, Scale.CELSIUS), DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); Property p3 = new Property(Namespaces.ALEXA_COLORTEMPERATURECONTROLLER, PropertyNames.THERMOSTATMODE, ThermostatModes.HEAT, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); ConnectivityPropertyValue value = new ConnectivityPropertyValue(ConnectivityModes.OK); Property p4 = new Property(Namespaces.ALEXA_ENDPOINTHEALTH, PropertyNames.CONNECTIVITY, value, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); response.Context.Properties.Add(p); response.Context.Properties.Add(p3); response.Context.Properties.Add(p4); Assert.NotNull(response.Event); Assert.Equal(typeof(Event), response.Event.GetType()); Event e = response.Event as Event; TestFunctionsV3.CheckResponseCreatedBaseHeader(e.Header, request.Directive.Header); 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(Payload), response.GetPayloadType()); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("SetTemperatureSingleMode", response); }
public void ResponseCreation_Unlock_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(UNLOCK_REQUEST); SmartHomeResponse response = new SmartHomeResponse(request.Directive.Header); Assert.Null(response.Context); response.Context = new Context(); Property p = new Property(Namespaces.ALEXA_LOCKCONTROLLER, PropertyNames.LOCK_STATE, LockModes.UNLOCKED, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); 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(p); 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); 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(Payload), response.GetPayloadType()); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("Lock", response); }
public void ResponseCreation_TemperatureOOR_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(SET_T_TEMPERATURE_TRIPLEMODE_REQUEST); SmartHomeResponse response = SmartHomeResponse.CreateErrorResponse(request.Directive.Header, ErrorTypes.TEMPERATURE_VALUE_OUT_OF_RANGE); Assert.Null(response.Context); 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_THERMOSTATCONTROLLER, HeaderNames.ERROR_RESPONSE); 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(TemperatureOutOfRangeErrorPayload), response.GetPayloadType()); TemperatureOutOfRangeErrorPayload p = response.Event.Payload as TemperatureOutOfRangeErrorPayload; Assert.Equal(ErrorTypes.TEMPERATURE_VALUE_OUT_OF_RANGE, p.Type); Assert.Null(p.Message); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.Message = "The requested temperature of -15 is out of range"; Assert.Null(p.ValidRange); p.ValidRange = new TemperatureValidRange(new Setpoint(15.0, Scale.CELSIUS), new Setpoint(20.0, Scale.CELSIUS)); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("TemperatureOOR", response); }
public void TestRequestedSetpointErrorResponse() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject <SmartHomeResponse>(ERROR_RESPONSE_SETPOINTS_TOO_CLOSE); //Context check Assert.Null(responseFromString.Context); //Event Check Assert.Equal(typeof(Event), responseFromString.Event.GetType()); Event e = responseFromString.Event as Event; TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA_THERMOSTATCONTROLLER, HeaderNames.ERROR_RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken); //Endpoint TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Assert.Equal(typeof(RequestedSetpointsTooCloseErrorPayload), responseFromString.GetPayloadType()); RequestedSetpointsTooCloseErrorPayload p = e.Payload as RequestedSetpointsTooCloseErrorPayload; Assert.Equal(ErrorTypes.REQUESTED_SETPOINTS_TOO_CLOSE, p.Type); Assert.Equal("The requested temperature results in setpoints too close", p.Message); Assert.NotNull(p.MinimumTemperatureDelta); Assert.Equal(2.0, p.MinimumTemperatureDelta.Value); Assert.Equal(Scale.CELSIUS, p.MinimumTemperatureDelta.Scale); }
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); }
public void ResponseParse_TemperatureSensor_Test() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject <SmartHomeResponse>(TEMPERATURESENSOR_RESPONSE); //Context check Assert.NotNull(responseFromString.Context); Assert.NotNull(responseFromString.Context.Properties); Assert.Equal(2, responseFromString.Context.Properties.Count); // Property 1 TestFunctionsV3.TestContextProperty(responseFromString.Context.Properties[0], PropertyNames.TEMPERATURE, Namespaces.ALEXA_TEMPERATURESENSOR, DateTime.Parse("2017-09-27T18:30:30.45Z"), 200, null); Assert.Equal(typeof(Setpoint), responseFromString.Context.Properties[0].Value.GetType()); Setpoint s = responseFromString.Context.Properties[0].Value as Setpoint; Assert.Equal(24.0, s.Value); Assert.Equal(Scale.CELSIUS, s.Scale); // Property 2 TestFunctionsV3.TestBasicHealthCheckProperty(responseFromString.Context.Properties[1], 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, HeaderNames.STATE_REPORT); 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(Payload), responseFromString.GetPayloadType()); }
public void ResponseCreation_TemperatureSensor_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(REPORT_STATE); SmartHomeResponse response = new SmartHomeResponse(request.Directive.Header); Assert.Null(response.Context); response.Context = new Context(); Setpoint s = new Setpoint(24.0, Scale.CELSIUS); Property p = new Property(Namespaces.ALEXA_TEMPERATURESENSOR, PropertyNames.TEMPERATURE, 50, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); 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(p); 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, headerName: HeaderNames.STATE_REPORT); 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(Payload), response.GetPayloadType()); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("TemperatureSensor", response); }
public void ResponseCreation_CameraStream_Test() { SmartHomeRequest requestFromString = JsonConvert.DeserializeObject <SmartHomeRequest>(INIT_CAMERA_STREAMS_REQUEST); SmartHomeResponse response = new SmartHomeResponse(requestFromString.Directive.Header); Assert.NotNull(response); Assert.Null(response.Context); response.Context = new Context(); response.Context.Properties.Add(new Property(Namespaces.ALEXA_ENDPOINTHEALTH, PropertyNames.CONNECTIVITY, new ConnectivityPropertyValue(ConnectivityModes.OK), DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200)); Assert.NotNull(response.Event); Assert.Equal(typeof(Event), response.Event.GetType()); Event e = response.Event as Event; TestFunctionsV3.CheckResponseCreatedBaseHeader(e.Header, requestFromString.Directive.Header, Namespaces.ALEXA_CAMERASTREAMCONTROLLER); 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(ResponseCameraStreamsPayload), response.GetPayloadType()); ResponseCameraStreamsPayload p = e.Payload as ResponseCameraStreamsPayload; Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.CameraStreams = new System.Collections.Generic.List <ResponseCameraStream>(); p.CameraStreams.Add(new ResponseCameraStream("rtsp://*****:*****@link.to.video:443/feed1.mp4", CameraProtocols.RTSP, new Resolution(1920, 1080), CameraAuthorizationTypes.BASIC, VideoCodecs.H264, AudioCodecs.AAC, 30, DateTime.Parse("2017-09-27T20:30:30.45Z").ToUniversalTime())); p.CameraStreams.Add(new ResponseCameraStream("rtsp://*****:*****@link.to.video:443/feed2.mp4", CameraProtocols.RTSP, new Resolution(1280, 720), CameraAuthorizationTypes.DIGEST, VideoCodecs.MPEG2, AudioCodecs.G711, 30, DateTime.Parse("2017-09-27T20:30:30.45Z").ToUniversalTime())); p.ImageURI = "https://*****:*****@link.to.image/image.jpg"; Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("CameraStream", response); }
public void TestTempValueOORResponse() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject<SmartHomeResponse>(TEMPVALUE_OOR); //Context check Assert.Null(responseFromString.Context); //Event Check Assert.Equal(typeof(Event), responseFromString.Event.GetType()); Event e = responseFromString.Event as Event; TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA, HeaderNames.ERROR_RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken); //Endpoint TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Assert.Equal(typeof(TemperatureOutOfRangeErrorPayload), responseFromString.GetPayloadType()); TemperatureOutOfRangeErrorPayload p = e.Payload as TemperatureOutOfRangeErrorPayload; Assert.Equal(ErrorTypes.TEMPERATURE_VALUE_OUT_OF_RANGE, p.Type); Assert.Equal("The requested temperature of -15 is out of range", p.Message); Assert.NotNull(p.ValidRange); Assert.NotNull(p.ValidRange.MaximumValue); Assert.Equal(30.0, p.ValidRange.MaximumValue.Value); Assert.Equal(Scale.CELSIUS, p.ValidRange.MaximumValue.Scale); Assert.NotNull(p.ValidRange.MinimumValue); Assert.Equal(15.0, p.ValidRange.MinimumValue.Value); Assert.Equal(Scale.CELSIUS, p.ValidRange.MinimumValue.Scale); }
public void ResponseCreation_ColorTemperatureResponse_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(SET_COLORTEMPERATURE); SmartHomeResponse response = new SmartHomeResponse(request.Directive.Header); Assert.Null(response.Context); response.Context = new Context(); Color color = new Color(350.5, 0.7138, 0.6524); Property p = new Property(Namespaces.ALEXA_COLORTEMPERATURECONTROLLER, PropertyNames.COLOR_TEMPERATURE_IN_KELVIN, 5000, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); 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(p); 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); 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(Payload), response.GetPayloadType()); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("ColorTemperature", response); }
public void ResponseCreation_SetpointError_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(SET_T_TEMPERATURE_TRIPLEMODE_REQUEST); SmartHomeResponse response = SmartHomeResponse.CreateErrorResponse(request.Directive.Header, ErrorTypes.REQUESTED_SETPOINTS_TOO_CLOSE); Assert.Null(response.Context); 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_THERMOSTATCONTROLLER, HeaderNames.ERROR_RESPONSE); 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(RequestedSetpointsTooCloseErrorPayload), response.GetPayloadType()); RequestedSetpointsTooCloseErrorPayload p = response.Event.Payload as RequestedSetpointsTooCloseErrorPayload; Assert.Equal(ErrorTypes.REQUESTED_SETPOINTS_TOO_CLOSE, p.Type); Assert.Null(p.Message); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.Message = "The requested temperature results in setpoints too close"; Assert.Null(p.MinimumTemperatureDelta); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.MinimumTemperatureDelta = new Setpoint(2.0, Scale.CELSIUS); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("Setpoints too clos", response); }
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); }
public static void TestBasicEventWithEmptyPayload(SmartHomeResponse repo, string accessToken, string correlationToken, ScopeTypes endpointType, string endpointToken, string endpointID) { Assert.NotNull(repo.Event); Assert.Equal(typeof(Event), repo.Event.GetType()); //Header Check TestFunctionsV3.TestHeaderV3(repo.Event.Header, accessToken, Namespaces.ALEXA, HeaderNames.RESPONSE); Assert.Equal(correlationToken, repo.Event.Header.CorrelationToken); //Endpoint Check Event e = repo.Event as Event; TestFunctionsV3.TestEndpointV3(e.Endpoint, endpointID); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, endpointToken); //Payload Check Assert.Equal(typeof(Payload), repo.GetPayloadType()); }
public void ResponseCreation_ChangeReport_Test() { SmartHomeResponse response = SmartHomeResponse.CreateChangeReportEvent(true); Assert.NotNull(response.Event); Assert.Null(response.Context); response.Context = new Context(); Property p1 = new Property(Namespaces.ALEXA_BRIGHTNESSCONTROLLER, PropertyNames.BRIGHTNESS, 85, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); Property p2 = new Property(Namespaces.ALEXA_ENDPOINTHEALTH, PropertyNames.CONNECTIVITY, new ConnectivityPropertyValue(ConnectivityModes.OK), DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200); response.Context.Properties.Add(p1); response.Context.Properties.Add(p2); Assert.Equal(typeof(Event), response.Event.GetType()); Event e = response.Event as Event; //Header Assert.NotNull(e.Header); Assert.Equal(Namespaces.ALEXA, e.Header.Namespace); Assert.Equal(HeaderNames.CHANGE_REPORT, e.Header.Name); e.Header.MessageId = "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"; //Payload Assert.NotNull(e.Payload); Assert.Equal(typeof(ChangeReportPayload), e.Payload.GetType()); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); ChangeReportPayload p = e.Payload as ChangeReportPayload; p.Change = new Change(); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.Change.Cause = new Cause(CauseTypes.PHYSICAL_INTERACTION); p.Change.Properties.Add(new Property(Namespaces.ALEXA_POWERCONTROLLER, PropertyNames.POWER_STATE, PowerStates.ON, DateTime.Parse("2017-09-27T18:30:30.45Z").ToUniversalTime(), 200)); //Endpoint Assert.Null(e.Endpoint); //Diffrent Response SmartHomeResponse responseWithOutPayload = SmartHomeResponse.CreateChangeReportEvent(false); Assert.NotNull(responseWithOutPayload.Event.Payload); Assert.Equal(typeof(Payload), responseWithOutPayload.GetPayloadType()); Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("ChangeReport", response); }
public void TestGeneralErrorResponse() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject<SmartHomeResponse>(GENERAL_ERROR); //Context check Assert.Null(responseFromString.Context); //Event Check Assert.Equal(typeof(Event), responseFromString.Event.GetType()); Event e = responseFromString.Event as Event; TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA, HeaderNames.ERROR_RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken); //Endpoint TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Assert.Equal(typeof(ErrorPayload), responseFromString.GetPayloadType()); ErrorPayload p = e.Payload as ErrorPayload; Assert.Equal(ErrorTypes.ENDPOINT_UNREACHABLE, p.Type); Assert.Equal("Unable to reach endpoint-001 because it appears to be offline", p.Message); }
public void TestEndpointLowPowerResponse() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject<SmartHomeResponse>(ENDPOINT_LOW_POWER); //Context check Assert.Null(responseFromString.Context); //Event Check Assert.Equal(typeof(Event), responseFromString.Event.GetType()); Event e = responseFromString.Event as Event; TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA, HeaderNames.ERROR_RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken); //Endpoint TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Assert.Equal(typeof(EndpointLowPowerErrorPayload), responseFromString.GetPayloadType()); EndpointLowPowerErrorPayload p = e.Payload as EndpointLowPowerErrorPayload; Assert.Equal(ErrorTypes.ENDPOINT_LOW_POWER, p.Type); Assert.Equal("The lock battery is low", p.Message); Assert.Equal(5, p.PercentageState); }
public void TestGeneralErrorResponse() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject <SmartHomeResponse>(GENERAL_ERROR); //Context check Assert.Null(responseFromString.Context); //Event Check Assert.Equal(typeof(Event), responseFromString.Event.GetType()); Event e = responseFromString.Event as Event; TestFunctionsV3.TestHeaderV3(e.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA_THERMOSTATCONTROLLER, HeaderNames.ERROR_RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", e.Header.CorrelationToken); //Endpoint TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Assert.Equal(typeof(ErrorPayload), responseFromString.GetPayloadType()); ErrorPayload p = e.Payload as ErrorPayload; Assert.Equal(ErrorTypes.THERMOSTAT_IS_OFF, p.Type); Assert.Equal("The thermostat is off, cannot turn on due to safety reasons", p.Message); }
public void ResponseParse_CameraStream_Test() { SmartHomeResponse responseFromString = JsonConvert.DeserializeObject <SmartHomeResponse>(CAMERA_STREAM_RESPONSE); //Context check Assert.NotNull(responseFromString.Context); Assert.NotNull(responseFromString.Context.Properties); Assert.Equal(1, responseFromString.Context.Properties.Count); // Property 1 TestFunctionsV3.TestContextProperty(responseFromString.Context.Properties[0], PropertyNames.CONNECTIVITY, Namespaces.ALEXA_ENDPOINTHEALTH, DateTime.Parse("2017-09-27T18:30:30.45Z"), 200, null); Assert.Equal(responseFromString.Context.Properties[0].Value.GetType(), typeof(ConnectivityPropertyValue)); ConnectivityPropertyValue conn = responseFromString.Context.Properties[0].Value as ConnectivityPropertyValue; Assert.Equal(ConnectivityModes.OK, conn.Value); //Event Check Assert.NotNull(responseFromString.Event); Assert.Equal(typeof(Event), responseFromString.Event.GetType()); //Header Check TestFunctionsV3.TestHeaderV3(responseFromString.Event.Header, "5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4", Namespaces.ALEXA_CAMERASTREAMCONTROLLER, HeaderNames.RESPONSE); Assert.Equal("dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==", responseFromString.Event.Header.CorrelationToken); //Endpoint Check Event e = responseFromString.Event as Event; TestFunctionsV3.TestEndpointV3(e.Endpoint, "endpoint-001"); TestFunctionsV3.TestBearerTokenV3(e.Endpoint.Scope, "access-token-from-Amazon"); //Payload Check Assert.Equal(typeof(ResponseCameraStreamsPayload), responseFromString.GetPayloadType()); ResponseCameraStreamsPayload payload = responseFromString.Event.Payload as ResponseCameraStreamsPayload; Assert.NotNull(payload.CameraStreams); Assert.Equal(2, payload.CameraStreams.Count); TestResponseCameraStream(payload.CameraStreams[0], "rtsp://*****:*****@link.to.video:443/feed1.mp4", DateTime.Parse("2017-09-27T20:30:30.45Z"), 30, CameraProtocols.RTSP, 1920, 1080, CameraAuthorizationTypes.BASIC, VideoCodecs.H264, AudioCodecs.AAC); TestResponseCameraStream(payload.CameraStreams[1], "rtsp://*****:*****@link.to.video:443/feed2.mp4", DateTime.Parse("2017-09-27T20:30:30.45Z"), 60, CameraProtocols.RTSP, 1280, 720, CameraAuthorizationTypes.DIGEST, VideoCodecs.MPEG2, AudioCodecs.G711); Assert.Equal("https://*****:*****@link.to.image/image.jpg", payload.ImageURI); }
public void ResponseCreation_GeneralError_Test() { SmartHomeRequest request = JsonConvert.DeserializeObject <SmartHomeRequest>(SET_T_TEMPERATURE_TRIPLEMODE_REQUEST); SmartHomeResponse response = SmartHomeResponse.CreateErrorResponse(request.Directive.Header, ErrorTypes.THERMOSTAT_IS_OFF); Assert.Null(response.Context); 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_THERMOSTATCONTROLLER, HeaderNames.ERROR_RESPONSE); 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(ErrorPayload), response.GetPayloadType()); ErrorPayload p = response.Event.Payload as ErrorPayload; Assert.Equal(ErrorTypes.THERMOSTAT_IS_OFF, p.Type); Assert.Null(p.Message); Assert.Throws <JsonSerializationException>(() => JsonConvert.SerializeObject(response)); p.Message = "The thermostat is off, cannot turn on due to safety reasons"; Assert.NotNull(JsonConvert.SerializeObject(response)); Util.Util.WriteJsonToConsole("GeneralErrorThermostat", response); }