mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-07-16 09:38:51 +02:00
99 lines
3.1 KiB
Go
99 lines
3.1 KiB
Go
//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
|
|
//Copyright (C) 2024 HTWKalender support@htwkalender.de
|
|
|
|
//This program is free software: you can redistribute it and/or modify
|
|
//it under the terms of the GNU Affero General Public License as published by
|
|
//the Free Software Foundation, either version 3 of the License, or
|
|
//(at your option) any later version.
|
|
|
|
//This program is distributed in the hope that it will be useful,
|
|
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
//GNU Affero General Public License for more details.
|
|
|
|
//You should have received a copy of the GNU Affero General Public License
|
|
//along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
package functions
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestOnlyWhitespace(t *testing.T) {
|
|
type args struct {
|
|
word string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{"empty string", args{""}, true},
|
|
{"whitespace", args{" "}, true},
|
|
{"whitespaces", args{" "}, true},
|
|
{"whitespaces and tabs", args{" \t"}, true},
|
|
{"whitespaces and tabs and newlines", args{" \t\n"}, true},
|
|
{"whitespaces and tabs and newlines and non-breaking spaces", args{" \t\n\u00A0"}, true},
|
|
{"non-whitespace", args{"a"}, false},
|
|
{"non-whitespaces", args{"abc"}, false},
|
|
{"non-whitespaces and tabs", args{"abc\t"}, false},
|
|
{"non-whitespaces and tabs and newlines", args{"abc\t\n"}, false},
|
|
{"non-whitespaces and tabs and newlines and non-breaking spaces", args{"abc\t\n\u00A0"}, false},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := OnlyWhitespace(tt.args.word); got != tt.want {
|
|
t.Errorf("OnlyWhitespace() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestHashString(t *testing.T) {
|
|
type args struct {
|
|
s string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want string
|
|
}{
|
|
{"empty string", args{""}, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"non-empty string", args{"abc"}, "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := HashString(tt.args.s); got != tt.want {
|
|
t.Errorf("HashString() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestIsSeparator(t *testing.T) {
|
|
type args struct {
|
|
separator []rune
|
|
character rune
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{"empty separator", args{[]rune{}, 'a'}, false},
|
|
{"separator with one rune equal", args{[]rune{'a'}, 'a'}, true},
|
|
{"separator with one rune different", args{[]rune{'a'}, 'b'}, false},
|
|
{"separator with two runes equal", args{[]rune{'a', 'b'}, 'a'}, true},
|
|
{"separator with two runes equal second", args{[]rune{'a', 'b'}, 'b'}, true},
|
|
{"separator with two runes different", args{[]rune{'a', 'b'}, 'c'}, false},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := IsSeparator(tt.args.separator)(tt.args.character); got != tt.want {
|
|
t.Errorf("IsSeparator()() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|