Skip to content

Commit 6fb1f94

Browse files
authored
Fixed FolderObjectStorage remaining the last content when the saved content is reduced (#247)
1 parent e9c3c27 commit 6fb1f94

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/Exceptionless/Storage/FolderObjectStorage.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public bool SaveObject<T>(string path, T value) where T : class {
6868
if (!Directory.Exists(directory))
6969
Directory.CreateDirectory(directory);
7070

71-
using (var writer = File.OpenWrite(Path.Combine(Folder, path))) {
71+
using (var writer = File.Open(Path.Combine(Folder, path), FileMode.Create)) {
7272
_resolver.GetStorageSerializer().Serialize(value, writer);
7373
}
7474
} catch (Exception ex) {

test/Exceptionless.Tests/Storage/FolderFileStorageTests.cs

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.IO;
34
using Xunit;
45
using Exceptionless.Dependency;
6+
using Exceptionless.Logging;
57
using Exceptionless.Serializer;
68
using Exceptionless.Storage;
79
using Xunit.Abstractions;
@@ -16,18 +18,49 @@ protected override IObjectStorage GetStorage() {
1618
var resolver = new DefaultDependencyResolver();
1719
resolver.Register<IJsonSerializer, DefaultJsonSerializer>();
1820
resolver.Register<IStorageSerializer, DefaultJsonSerializer>();
21+
resolver.Register<IExceptionlessLog, NullExceptionlessLog>();
22+
1923
return new FolderObjectStorage(resolver, "temp");
2024
}
2125

2226
[Fact]
2327
public void CanUseDataDirectory() {
2428
var resolver = new DefaultDependencyResolver();
2529
resolver.Register<IJsonSerializer, DefaultJsonSerializer>();
26-
30+
2731
var storage = new FolderObjectStorage(resolver, DATA_DIRECTORY_QUEUE_FOLDER);
2832
Assert.NotNull(storage.Folder);
2933
Assert.NotEqual(DATA_DIRECTORY_QUEUE_FOLDER, storage.Folder);
3034
Assert.True(storage.Folder.EndsWith("Queue" + Path.DirectorySeparatorChar) || storage.Folder.EndsWith("Queue" + Path.AltDirectorySeparatorChar), storage.Folder);
3135
}
36+
37+
38+
[Fact]
39+
public void Get_Save_Object_Multiple_Test() {
40+
41+
var storage = GetStorage();
42+
var list = new List<int>() { 1, 2, 3 };
43+
var path = "test.json";
44+
45+
//
46+
storage.SaveObject(path, list);
47+
var list2 = storage.GetObject<List<int>>(path);
48+
Assert.Equal(list,list2);
49+
50+
51+
//Save after adding items to the list
52+
list.Add(4);
53+
storage.SaveObject(path, list);
54+
list2 = storage.GetObject<List<int>>(path);
55+
Assert.Equal(list, list2);
56+
57+
//Save the list after remove items
58+
list.Remove(4);
59+
storage.SaveObject(path, list);
60+
list2 = storage.GetObject<List<int>>(path);
61+
Assert.Equal(list, list2);
62+
63+
64+
}
3265
}
3366
}

0 commit comments

Comments
 (0)