< Summary

Class:DCLServices.WorldsAPIService.WorldsResponse
Assembly:WorldsAPIService
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/WorldsAPIService/WorldsResponse.cs
Covered lines:2
Uncovered lines:17
Coverable lines:19
Total lines:112
Line coverage:10.5% (2 of 19)
Covered branches:0
Total branches:0
Covered methods:1
Total methods:3
Method coverage:33.3% (1 of 3)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
OnBeforeSerialize()0%12300%
OnAfterDeserialize()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/DCLServices/WorldsAPIService/WorldsResponse.cs

#LineLine coverage
 1using DCLServices.Lambdas;
 2using MainScripts.DCL.Controllers.HotScenes;
 3using Newtonsoft.Json;
 4using System;
 5using System.Collections.Generic;
 6using System.Globalization;
 7using UnityEngine;
 8
 9namespace DCLServices.WorldsAPIService
 10{
 11    public static class WorldsResponse
 12    {
 13        [Serializable]
 14        public class WorldInfo : ISerializationCallbackReceiver
 15        {
 16            [Serializable]
 17            public class Realm
 18            {
 19                public string serverName;
 20                public string layer;
 21                public string url;
 22                public int usersCount;
 23                public int maxUsers;
 24                public Vector2Int[] userParcels;
 25            }
 26            public string id;
 27            public string title;
 28            public string description;
 29            public string image;
 30            public string owner;
 31            public string[] tags;
 32            [SerializeField] private string[] positions;
 33            public string world_name;
 34
 35            public Vector2Int[] Positions;
 36
 37            public string base_position;
 38            public string contact_name;
 39            public string contact_email;
 40            public string content_rating;
 41            public bool disabled;
 42            public string disabled_at;
 43            public string created_at;
 44            public string updated_at;
 45            public string deployed_at;
 46            public int favorites;
 47            public int likes;
 48            public int dislikes;
 49            public string[] categories;
 50            public bool highlighted;
 51            public string highlighted_image;
 52            public bool featured;
 53            public string featured_image;
 54            public bool user_favorite;
 55            public bool user_like;
 56            public bool user_dislike;
 57            public int user_count;
 58            public int user_visits;
 59            public Realm[] realms_detail;
 60
 61            public string like_rate;
 62
 63            [JsonIgnore]
 64            public float? like_rate_as_float
 65            {
 66                get
 67                {
 168                    if (string.IsNullOrEmpty(like_rate))
 169                        return null;
 70
 071                    if (float.TryParse(like_rate, NumberStyles.Float, CultureInfo.InvariantCulture, out float result))
 072                        return result;
 73
 074                    return null;
 75                }
 76            }
 77
 78            public void OnBeforeSerialize()
 79            {
 080                if (Positions == null)
 81                {
 082                    positions = null;
 083                    return;
 84                }
 85
 086                positions = new string[Positions.Length];
 087                for (int i = 0; i < Positions.Length; i++)
 088                    positions[i] = $"{Positions[i].x},{Positions[i].y}";
 089            }
 90
 91            public void OnAfterDeserialize()
 92            {
 093                if (positions == null)
 094                    return;
 095                Positions = new Vector2Int[positions.Length];
 096                for (int i = 0; i < positions.Length; i++)
 97                {
 098                    string[] split = positions[i].Split(',');
 099                    Positions[i] = new Vector2Int(int.Parse(split[0]), int.Parse(split[1]));
 100                }
 0101            }
 102        }
 103
 104        [Serializable]
 105        public class WorldsAPIResponse : PaginatedResponse
 106        {
 107            public bool ok;
 108            public int total;
 109            public List<WorldInfo> data;
 110        }
 111    }
 112}