Skip to content

Commit dd800bc

Browse files
committed
Merge branch 'release/v1.1.0'
2 parents 1f7fac5 + 184b1cf commit dd800bc

33 files changed

Lines changed: 720 additions & 579 deletions

API.Test/AuthentificationTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace API.Test;
1111
[TestFixture]
1212
internal class AuthentificationTests
1313
{
14-
public static WebUntisClient Client { get; set; } = new("WebUntisAPI_TEST", 1000);
14+
public static WebUntisClient Client { get; set; } = new("WebUntisAPI_TEST", TimeSpan.FromSeconds(2));
1515

1616
static AuthentificationTests()
1717
{
@@ -34,7 +34,7 @@ public void Authentification()
3434
{
3535
try
3636
{
37-
using WebUntisClient client = new("WebUntisAPI_TEST");
37+
using WebUntisClient client = new("WebUntisAPI_TEST", TimeSpan.FromSeconds(2));
3838
client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
3939
client.LogoutAsync().Wait();
4040
}

API.Test/MessagesTests.cs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,22 @@ public void GetMessageInbox()
4141
{
4242
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
4343

44-
Task<MessagePreview[]> messages = Client.GetMessageInboxAsync();
44+
Task<(MessagePreview[], MessagePreview[])> messages = Client.GetMessageInboxAsync();
4545
messages.Wait();
46-
if (messages.Result.Length > 0)
46+
if (messages.Result.Item1.Length > 0)
47+
Assert.Pass();
48+
else
49+
Assert.Fail();
50+
}
51+
52+
[Test]
53+
public void GetSentMessages()
54+
{
55+
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
56+
57+
Task<MessagePreview[]> messages = Client.GetSentMessagesAsync();
58+
messages.Wait();
59+
if (messages.Result != null)
4760
Assert.Pass();
4861
else
4962
Assert.Fail();
@@ -54,9 +67,9 @@ public void GetFullMessage()
5467
{
5568
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
5669

57-
Task<MessagePreview[]> messages = Client.GetMessageInboxAsync();
70+
Task<(MessagePreview[], MessagePreview[])> messages = Client.GetMessageInboxAsync();
5871
messages.Wait();
59-
Task<Message> msg = messages.Result.First(msg => msg.Subject == "Test").GetFullMessageAsync(Client);
72+
Task<Message> msg = messages.Result.Item1.First(msg => msg.Subject == "Test").GetFullMessageAsync(Client);
6073
msg.Wait();
6174
_ = msg.Result;
6275
return;
@@ -87,4 +100,20 @@ public void GetDrafts()
87100
else
88101
Assert.Fail();
89102
}
103+
104+
[Test]
105+
public void GetReplyForm()
106+
{
107+
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
108+
109+
Task<(MessagePreview[], MessagePreview[])> messages = Client.GetMessageInboxAsync();
110+
messages.Wait();
111+
112+
Task<Message> drafts = Client.GetReplyFormAsync(messages.Result.Item1[0]);
113+
drafts.Wait();
114+
if (drafts.Result != null)
115+
Assert.Pass();
116+
else
117+
Assert.Fail();
118+
}
90119
}

API.Test/TeachingTests.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,25 @@ public void GetLatestImportTime()
7777
Assert.Fail();
7878
}
7979

80+
[Test]
81+
public void GetUnreadNews()
82+
{
83+
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
84+
85+
Task<int> unread = Client.GetUnreadNewsCountAsync();
86+
unread.Wait();
87+
if (unread.Result == 0)
88+
Assert.Pass();
89+
else
90+
Assert.Fail();
91+
}
92+
8093
[Test]
8194
public void GetNewsFeed()
8295
{
8396
Client.LoginAsync(s_Server, s_LoginName, s_UserName, s_Password).Wait();
8497

85-
Task<News> news = Client.GetNewsFeedAsync(new DateTime(2023, 06, 23));
98+
Task<News> news = Client.GetNewsFeedAsync(new DateTime(2023, 07, 10));
8699
news.Wait();
87100
if (news.Result != null)
88101
Assert.Pass();

WebUntisAPI.Client/Converter/ClassJsonConverter.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66

77
namespace WebUntisAPI.Client.Converter
88
{
9-
/// <summary>
10-
/// Convert the teachers in webuntis get classes response to int array
11-
/// </summary>
129
internal class ClassJsonConverter : JsonConverter<Class>
1310
{
1411
/// <inheritdoc/>

WebUntisAPI.Client/Converter/StatusDataJsonConverter.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public override StatusData ReadJson(JsonReader reader, Type objectType, StatusDa
2525
OhColors = lessonTypes.First(obj => obj.ContainsKey("oh"))["oh"].ToObject<ForeBackColors>(),
2626
SbColors = lessonTypes.First(obj => obj.ContainsKey("sb"))["sb"].ToObject<ForeBackColors>(),
2727
BsColors = lessonTypes.First(obj => obj.ContainsKey("bs"))["bs"].ToObject<ForeBackColors>(),
28+
ExColors = lessonTypes.First(obj => obj.ContainsKey("ex"))["ex"].ToObject<ForeBackColors>(),
2829
CancelledLessonColors = codes.First(obj => obj.ContainsKey("cancelled"))["cancelled"].ToObject<ForeBackColors>(),
2930
IrregularLessonColors = codes.First(obj => obj.ContainsKey("irregular"))["irregular"].ToObject<ForeBackColors>()
3031
};
@@ -57,6 +58,11 @@ public override void WriteJson(JsonWriter writer, StatusData value, JsonSerializ
5758
serializer.Serialize(writer, value.BsColors);
5859
writer.WriteEndObject();
5960

61+
writer.WriteStartObject();
62+
writer.WritePropertyName("ex");
63+
serializer.Serialize(writer, value.ExColors);
64+
writer.WriteEndObject();
65+
6066
writer.WriteEndArray();
6167

6268
writer.WritePropertyName("codes");

WebUntisAPI.Client/Converter/TimegridJsonConverter.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,16 @@ public override Timegrid ReadJson(JsonReader reader, Type objectType, Timegrid e
3030
public override void WriteJson(JsonWriter writer, Timegrid value, JsonSerializer serializer)
3131
{
3232
writer.WriteStartArray(); // Write the diferent days
33-
foreach ((Day day, SchoolHour[] schoolHours) in value)
33+
foreach (KeyValuePair<Day, SchoolHour[]> day in value)
3434
{
3535
writer.WriteStartObject();
3636

3737
writer.WritePropertyName("day");
38-
writer.WriteValue((int)day);
38+
writer.WriteValue((int)day.Key);
3939

4040
writer.WritePropertyName("timeUnits");
4141
writer.WriteStartArray(); // Write all school hours
42-
foreach (SchoolHour hour in schoolHours)
42+
foreach (SchoolHour hour in day.Value)
4343
serializer.Serialize(writer, hour);
4444

4545
writer.WriteEndArray();

WebUntisAPI.Client/Converter/TimetableRequestModelJsonConverter.cs

Lines changed: 0 additions & 71 deletions
This file was deleted.

WebUntisAPI.Client/Enums.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public enum LessonType
117117
public enum Code
118118
{
119119
/// <summary>
120-
/// No code
120+
/// No code (normal lesson)
121121
/// </summary>
122122
[JsonProperty("")]
123123
None = 0,

WebUntisAPI.Client/Models/GetClassregEventsRequestModel.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.

WebUntisAPI.Client/Models/GetPersonIdRequestModel.cs

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)