Fixing other null-refs
[profile/tv/apps/dotnet/home.git] / LibCommon.Shared / Stubs / FileSystemAPITestStub.cs
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.1 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://floralicense.org/license/
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using LibTVRefCommonPortable.Utils;
18 using System;
19 using System.IO;
20 using System.Text;
21
22 namespace LibTVRefCommonPortable.Stubs
23 {
24     /// <summary>
25     /// A unit test stub for FileSystemUtils
26     /// </summary>
27     public class FileSystemAPITestStub : IFileSystemAPIs
28     {
29         /// <summary>
30         /// A directory path which should be used for app data storing.
31         /// </summary>
32         public string AppDataStorage
33         {
34             get
35             {
36                 return "test_app_data_path/";
37             }
38         }
39
40         /// <summary>
41         /// A directory path which should be used for app resource storing.
42         /// </summary>
43         public string AppResourceStorage
44         {
45             get
46             {
47                 return "test_app_resource_path/";
48             }
49         }
50
51         /// <summary>
52         /// A directory path which should be used for sharing between apps.
53         /// </summary>
54         public string PlatformShareStorage
55         {
56             get
57             {
58                 return "test_platform_share_path/";
59             }
60         }
61
62         /// <summary>
63         /// A method closes the file.
64         /// </summary>
65         /// <param name="stream">A file descriptor</param>
66         public void CloseFile(Stream stream)
67         {
68         }
69
70         /// <summary>
71         /// A method flushing the stream to write remains.
72         /// </summary>
73         /// <param name="stream">A file descriptor</param>
74         public void Flush(Stream stream)
75         {
76         }
77
78         /// <summary>
79         /// A method checks if a file existence in the file system.
80         /// </summary>
81         /// <param name="filePath">A file path</param>
82         /// <returns>An existence of the file</returns>
83         public bool IsFileExist(string filePath)
84         {
85             return true;
86         }
87
88         /// <summary>
89         /// A method checks if file is read to use.
90         /// </summary>
91         /// <param name="filePath">A file path</param>
92         /// <returns>A status of ready</returns>
93         public bool IsFileReady(string filePath)
94         {
95             return true;
96         }
97
98         /// <summary>
99         /// A method opens a file on the given mode.
100         /// </summary>
101         /// <param name="filePath">A file path</param>
102         /// <param name="mode">An opening mode</param>
103         /// <returns>A file descriptor</returns>
104         public Stream OpenFile(string filePath, UtilFileMode mode)
105         {
106             if (mode != UtilFileMode.Open)
107             {
108                 throw new NotImplementedException();
109             }
110
111             if (filePath.Contains("pinned_apps_info"))
112             {
113                 StringBuilder pinnedApps = new StringBuilder();
114
115                 pinnedApps.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
116                 pinnedApps.Append("<ArrayOfAppShortcutInfo");
117                 pinnedApps.Append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"");
118                 pinnedApps.Append(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
119                 pinnedApps.Append("  <AppShortcutInfo>");
120                 pinnedApps.Append("    <AppID>org.tizen.xahome</AppID>");
121                 pinnedApps.Append("  </AppShortcutInfo>");
122                 pinnedApps.Append("  <AppShortcutInfo>");
123                 pinnedApps.Append("    <AppID>org.tizen.xaapps</AppID>");
124                 pinnedApps.Append("  </AppShortcutInfo>");
125                 pinnedApps.Append("  <AppShortcutInfo>");
126                 pinnedApps.Append("    <AppID>org.tizen.xamediahub</AppID>");
127                 pinnedApps.Append("  </AppShortcutInfo>");
128                 pinnedApps.Append("  <AppShortcutInfo>");
129                 pinnedApps.Append("    <AppID>org.tizen.settings</AppID>");
130                 pinnedApps.Append("  </AppShortcutInfo>");
131                 pinnedApps.Append("  <AppShortcutInfo>");
132                 pinnedApps.Append("    <AppID>org.tizen.example.TocToc.Tizen</AppID>");
133                 pinnedApps.Append("  </AppShortcutInfo>");
134                 pinnedApps.Append("  <AppShortcutInfo>");
135                 pinnedApps.Append("    <AppID>org.tizen.example.YouTube.Tizen</AppID>");
136                 pinnedApps.Append("  </AppShortcutInfo>");
137                 pinnedApps.Append("  <AppShortcutInfo>");
138                 pinnedApps.Append("    <AppID>org.tizen.example.Toda.Tizen</AppID>");
139                 pinnedApps.Append("  </AppShortcutInfo>");
140                 pinnedApps.Append("  <AppShortcutInfo>");
141                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly4.Tizen</AppID>");
142                 pinnedApps.Append("  </AppShortcutInfo>");
143                 pinnedApps.Append("  <AppShortcutInfo>");
144                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly5.Tizen</AppID>");
145                 pinnedApps.Append("  </AppShortcutInfo>");
146                 pinnedApps.Append("  <AppShortcutInfo>");
147                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly6.Tizen</AppID>");
148                 pinnedApps.Append("  </AppShortcutInfo>");
149                 pinnedApps.Append("  <AppShortcutInfo>");
150                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly7.Tizen</AppID>");
151                 pinnedApps.Append("  </AppShortcutInfo>");
152                 pinnedApps.Append("  <AppShortcutInfo>");
153                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly8.Tizen</AppID>");
154                 pinnedApps.Append("  </AppShortcutInfo>");
155                 pinnedApps.Append("  <AppShortcutInfo>");
156                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly9.Tizen</AppID>");
157                 pinnedApps.Append("  </AppShortcutInfo>");
158                 pinnedApps.Append("  <AppShortcutInfo>");
159                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly10.Tizen</AppID>");
160                 pinnedApps.Append("  </AppShortcutInfo>");
161                 pinnedApps.Append("  <AppShortcutInfo>");
162                 pinnedApps.Append("    <AppID>org.tizen.example.Butterfly11.Tizen</AppID>");
163                 pinnedApps.Append("  </AppShortcutInfo>");
164                 pinnedApps.Append("  <AppShortcutInfo>");
165                 pinnedApps.Append("    <AppID></AppID>");
166                 pinnedApps.Append("  </AppShortcutInfo>");
167                 pinnedApps.Append("</ArrayOfAppShortcutInfo>");
168
169                 MemoryStream stream = new MemoryStream();
170                 StreamWriter writer = new StreamWriter(stream);
171                 writer.Write(pinnedApps.ToString());
172                 writer.Flush();
173                 stream.Position = 0;
174                 return stream;
175             }
176
177             throw new NotImplementedException();
178         }
179     }
180 }