示例#1
0
        public void ShouldDeserializeActivityCorrectly()
        {
            // Given
            string courseResultJson =
                "{\"result\":{\"event_array\":[{\"break_length\":\"00:30\",\"end_time\":\"15:50\",\"id\":1,\"length\":\"01:30\",\"room\":\"A\",\"room_id\":1,\"start_time\":\"14:20\",\"weekday\":1}],\"event_count\":1,\"id\":1,\"students_array\":[{\"group\":\"1\",\"groups\":\"2\",\"id\":1,\"name\":\"A\"}],\"students_count\":1,\"subject\":\"A\",\"subject_id\":1,\"teacher_array\":[{\"id\":1,\"name\":\"A\"}],\"teacher_count\":1},\"status\":\"ok\"}";
            // When
            EntityApiResponse <Activity> parsedEntities =
                JsonProcessor.GetObjectFromStream <EntityApiResponse <Activity> >(
                    new MemoryStream(Encoding.UTF8.GetBytes(courseResultJson)));

            // Then
            parsedEntities.Should().NotBeNull();
            parsedEntities.Result.Should().NotBeNull();
            parsedEntities.Result.Id.Should().Be(1);
            parsedEntities.Result.Subject.Should().Be("A");
            parsedEntities.Result.SubjectId.Should().Be(1);
            parsedEntities.Result.Teachers.Should().Contain(z => z.Name == "A" && z.Id == 1);
            parsedEntities.Result.CourseGroups.Should().Contain(z => z.GroupId == 1 &&
                                                                z.Id == 1 &&
                                                                z.Name == "A" &&
                                                                z.TotalGroups == 2);
            parsedEntities.Result.Events.Should().Contain(z => z.BreakLength == "00:30" &&
                                                          z.Day == WeekDay.Monday &&
                                                          z.Duration == "01:30" &&
                                                          z.Ends == "15:50" &&
                                                          z.Id == 1 &&
                                                          z.RoomId == 1 && z.RoomName == "A" &&
                                                          z.Start == "14:20");
        }
示例#2
0
        private static void ValidateResponse(EntityApiResponse <Teacher> apiResponse)
        {
            if (apiResponse?.Status.ToLower() != "ok")
            {
                throw new InvalidOperationException(apiResponse?.Error);
            }

            if (apiResponse.Result is null)
            {
                throw new InvalidCastException(
                          "Something wrong happened, server sent response that does not match predefined structure. Notify me about this bug by creating an issue at project page on GitHub.");
            }
        }
示例#3
0
        public async Task <Teacher> Get(int id)
        {
            Uri teacherUri = new Uri(_configuration.BaseApiUri, _configuration.Endpoints[EndpointType.Teacher]);

            string jsonBody = JsonProcessor.GetStringFromObject(new IntRequest(id));

            HttpResponseMessage responseMessage = await RequestMaker.GetResource(teacherUri, jsonBody);

            EntityApiResponse <Teacher> apiResponse =
                JsonProcessor.GetObjectFromStream <EntityApiResponse <Teacher> >(await responseMessage.Content
                                                                                 .ReadAsStreamAsync());

            ValidateResponse(apiResponse);

            return(apiResponse.Result);
        }
示例#4
0
        public void ShouldDeserializeCourseCorrectly()
        {
            // Given
            string courseResultJson =
                "{\"result\":{\"id\":1,\"name\":\"A\"},\"status\":\"ok\"}";
            // When
            EntityApiResponse <Course> parsedEntities =
                JsonProcessor.GetObjectFromStream <EntityApiResponse <Course> >(
                    new MemoryStream(Encoding.UTF8.GetBytes(courseResultJson)));

            // Then
            parsedEntities.Should().NotBeNull();
            parsedEntities.Result.Should().NotBeNull();
            parsedEntities.Result.Id.Should().Be(1);
            parsedEntities.Result.Name.Should().Be("A");
        }
示例#5
0
        public void ShouldDeserializeRoomCorrectly()
        {
            // Given
            string roomResultJson =
                "{\"result\":{\"department_id\":1,\"id\":1,\"name\":\"A\",\"quanitiy\":1},\"status\":\"ok\"}";
            // When
            EntityApiResponse <Room> parsedEntities =
                JsonProcessor.GetObjectFromStream <EntityApiResponse <Room> >(
                    new MemoryStream(Encoding.UTF8.GetBytes(roomResultJson)));

            // Then
            parsedEntities.Should().NotBeNull();
            parsedEntities.Result.Should().NotBeNull();
            parsedEntities.Result.Id.Should().Be(1);
            parsedEntities.Result.Name.Should().Be("A");
            parsedEntities.Result.DepartmentId.Should().Be(1);
            parsedEntities.Result.Capacity.Should().Be(1);
        }
示例#6
0
        public void ShouldDeserializeTeacherCorrectly()
        {
            // Given
            string teacherResultJson =
                "{\"result\":{\"degree\":\"A\",\"department_id\":1,\"first_name\":\"A\",\"id\":1,\"last_name\":\"A\"},\"status\":\"ok\"}";
            // When
            EntityApiResponse <Teacher> parsedEntities =
                JsonProcessor.GetObjectFromStream <EntityApiResponse <Teacher> >(
                    new MemoryStream(Encoding.UTF8.GetBytes(teacherResultJson)));

            // Then
            parsedEntities.Should().NotBeNull();
            parsedEntities.Result.Should().NotBeNull();
            parsedEntities.Result.Id.Should().Be(1);
            parsedEntities.Result.Degree.Should().Be("A");
            parsedEntities.Result.DepartmentId.Should().Be(1);
            parsedEntities.Result.FirstName.Should().Be("A");
            parsedEntities.Result.LastName.Should().Be("A");
        }