Added time format with only offset. Fixes #22558.
[mono.git] / mcs / class / WindowsBase / Test / System.IO.Packaging / FakePackage.cs
1 // Permission is hereby granted, free of charge, to any person obtaining\r
2 // a copy of this software and associated documentation files (the\r
3 // "Software"), to deal in the Software without restriction, including\r
4 // without limitation the rights to use, copy, modify, merge, publish,\r
5 // distribute, sublicense, and/or sell copies of the Software, and to\r
6 // permit persons to whom the Software is furnished to do so, subject to\r
7 // the following conditions:\r
8 // \r
9 // The above copyright notice and this permission notice shall be\r
10 // included in all copies or substantial portions of the Software.\r
11 // \r
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
19 //\r
20 // Copyright (c) 2008 Novell, Inc. (http://www.novell.com)\r
21 //\r
22 // Authors:\r
23 //      Alan McGovern (amcgovern@novell.com)\r
24 //\r
25 \r
26 \r
27 using System;\r
28 using System.Collections.Generic;\r
29 \r
30 namespace System.IO.Packaging.Tests {\r
31         \r
32     public class FakePackage : Package {\r
33         Dictionary<Uri, PackagePart> Parts { get; set; }\r
34         public List<Uri> CreatedParts { get; private set; }\r
35         public List<Uri> DeletedParts { get; private set; }\r
36         public List<Uri> GotParts { get; private set; }\r
37 \r
38         public FakePackage (FileAccess access, bool streaming)\r
39             : base (access, streaming)\r
40         {\r
41             CreatedParts = new List<Uri> ();\r
42             DeletedParts = new List<Uri> ();\r
43             GotParts = new List<Uri>();\r
44             Parts = new Dictionary<Uri, PackagePart> ();\r
45         }\r
46 \r
47         protected override PackagePart CreatePartCore (Uri partUri, string contentType, CompressionOption compressionOption)\r
48         {\r
49             FakePackagePart p = new FakePackagePart (this, partUri, contentType, compressionOption);\r
50             Parts.Add (p.Uri, p);\r
51             CreatedParts.Add (partUri);\r
52             return p;\r
53         }\r
54 \r
55         protected override void DeletePartCore (Uri partUri)\r
56         {\r
57             DeletedParts.Add (partUri);\r
58             Parts.Remove (partUri);\r
59         }\r
60 \r
61         protected override void FlushCore ()\r
62         {\r
63             // Flush...\r
64         }\r
65         \r
66         protected override PackagePart GetPartCore (Uri partUri)\r
67         {\r
68             if (!GotParts.Contains (partUri))\r
69                 GotParts.Add (partUri);\r
70             return Parts.ContainsKey(partUri) ?  Parts [partUri] : null;\r
71         }\r
72 \r
73         protected override PackagePart [] GetPartsCore ()\r
74         {\r
75             PackagePart [] p = new PackagePart [Parts.Count];\r
76             Parts.Values.CopyTo (p, 0);\r
77             return p;\r
78         }\r
79     }\r
80 }