Skip to content

Commit 39a260a

Browse files
committed
Propagate shorturl filename
1 parent d14c64e commit 39a260a

File tree

7 files changed

+23
-15
lines changed

7 files changed

+23
-15
lines changed

examples/shortUrl/CreateFileLink.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
var features = new Features(client);
88

99
const string name = "abc";
10-
var file = new FileStream("<path_to_file>", FileMode.Open);
10+
var file = new FileInfo("<path_to_file>");
1111

1212
try
1313
{

smsapi/Api/Action/ShortUrl/CreateShortUrl.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public enum ShortUrlExpirationUnit
2121

2222
private string? _description;
2323
private (uint, string)? _expireAt;
24-
private readonly Stream? _file;
24+
private readonly FileInfo? _file;
2525

2626
private readonly string _name;
2727
private readonly string? _url;
@@ -32,7 +32,7 @@ public CreateShortUrl(string name, string url)
3232
_url = url;
3333
}
3434

35-
public CreateShortUrl(string name, Stream file)
35+
public CreateShortUrl(string name, FileInfo file)
3636
{
3737
_name = name;
3838
_file = file;
@@ -93,7 +93,7 @@ protected override Dictionary<string, Stream> Files()
9393
{
9494
var files = new Dictionary<string, Stream>();
9595

96-
_file?.Let(file => files.Add("file", file));
96+
_file?.Let(file => files.Add(file.Name, file.OpenRead()));
9797

9898
return files;
9999
}

smsapi/Api/ShortUrlFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public CreateShortUrl Create(string name, string uri)
3636
return action;
3737
}
3838

39-
public CreateShortUrl Create(string name, Stream file)
39+
public CreateShortUrl Create(string name, FileInfo file)
4040
{
4141
var action = new CreateShortUrl(name, file);
4242
action.Proxy(proxy);

smsapi/NativeHttpClientHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private static HttpContent ConvertRequestDataToHttpContent(
7575
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
7676
{
7777
Name = "\"file\"",
78-
FileName = "\"file\""
78+
FileName = $"\"{files.Keys.First()}\""
7979
};
8080

8181
var content = new MultipartFormDataContent

smsapiTests/Unit/Action/ShortUrl/CreateShortUrlTest.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,18 @@ public void send_description()
6262
public void send_name_and_file()
6363
{
6464
var name = "fancy name";
65-
var file = new MemoryStream();
65+
var fileName = "richMedia.txt";
66+
var fileContent = "file content";
67+
var filePath = Path.Combine(Path.GetTempPath(), fileName);
68+
File.WriteAllText(filePath, fileContent);
69+
var file = new FileInfo(filePath);
6670

6771
CreateShortUrl(name, file).Execute();
6872

6973
_proxyAssert.AssertParametersCount(2);
7074
_proxyAssert.AssertParametersContain("name", name);
7175
_proxyAssert.AssertParametersContain("type", "FILE");
72-
_proxyAssert.AssertFileAttached(file);
76+
_proxyAssert.AssertFileAttached(fileName, file.OpenRead());
7377
}
7478

7579
[TestMethod]
@@ -96,7 +100,7 @@ private CreateShortUrl CreateShortUrl(string name, string uri)
96100
return action;
97101
}
98102

99-
private CreateShortUrl CreateShortUrl(string name, Stream file)
103+
private CreateShortUrl CreateShortUrl(string name, FileInfo file)
100104
{
101105
var action = new CreateShortUrl(name, file);
102106
action.Proxy(_spyProxy);

smsapiTests/Unit/ProxyAssert.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ public ProxyAssert AssertParametersContain(string name, string value)
5151
return this;
5252
}
5353

54-
public void AssertFileAttached(Stream file)
54+
public void AssertFileAttached(string name, Stream file)
5555
{
5656
Assert.IsTrue(
57-
proxy.Files.Contains(value: file),
57+
proxy.Files.Contains(value: KeyValuePair.Create(name, new StreamReader(file).ReadToEnd())),
5858
"Not attached file found"
5959
);
6060
}

smsapiTests/Unit/SpyProxy.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class SpyProxy : Proxy
1717
public RequestMethod RequestMethod { get; private set; }
1818

1919
public Dictionary<string, dynamic?> Parameters { get; } = new();
20-
public ICollection<Stream> Files { get; } = new List<Stream>();
20+
public ICollection<KeyValuePair<string, string>> Files { get; } = new List<KeyValuePair<string, string>>();
2121

2222
public void Authentication(IClient client)
2323
{
@@ -39,7 +39,8 @@ public HttpResponseEntity Execute(ActionContentType contentType, string uri, ISe
3939
RequestedUri = uri;
4040
SetParameters(data);
4141
RequestMethod = method;
42-
Files.Add(file);
42+
Files.Add(KeyValuePair.Create("", new StreamReader(file).ReadToEnd()));
43+
file.Position = 0;
4344

4445
return new HttpResponseEntity(new Task<Stream>(() => new MemoryStream()), HttpStatusCode.OK);
4546
}
@@ -49,9 +50,12 @@ public HttpResponseEntity Execute(ActionContentType contentType, string uri, ISe
4950
RequestedUri = uri;
5051
SetParameters(data);
5152
RequestMethod = method;
52-
foreach (var file in files.Values)
53+
foreach (var file in files)
5354
{
54-
Files.Add(file);
55+
var content = new StreamReader(file.Value).ReadToEnd();
56+
file.Value.Position = 0;
57+
58+
Files.Add(KeyValuePair.Create(file.Key, content));
5559
}
5660

5761
return new HttpResponseEntity(Task.FromResult(Stream.Null), HttpStatusCode.OK);

0 commit comments

Comments
 (0)