blob: 032e7332cfad8897e1cf01835972984c793dbe74 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using NSubstitute.Core;
using NUnit.Framework;
using Usergrid.Sdk.Model;
namespace Usergrid.Sdk.Tests.Model
{
[TestFixture]
public class NotificationRecipientsTests
{
[Test]
public void NotificationRecipientsBuildsQuery1()
{
var query = new NotificationRecipients()
.AddDeviceWithName("d")
.AddGroupWithPath("p")
.AddUserWithName("u")
.BuildQuery();
Assert.AreEqual("/groups/p/users/u/devices/d/notifications", query);
}
[Test]
public void NotificationRecipientsBuildsQuery2()
{
var query = new NotificationRecipients()
.AddDeviceWithName("d")
.AddGroupWithPath("p")
.AddUserWithUuid("u")
.BuildQuery();
Assert.AreEqual("/groups/p/users/u/devices/d/notifications", query);
}
[Test]
public void NotificationRecipientsBuildsQuery3()
{
var query = new NotificationRecipients()
.AddDeviceWithQuery("d")
.AddGroupWithQuery("p")
.AddUserWithQuery("u")
.BuildQuery();
Assert.AreEqual("/groups;ql=p/users;ql=u/devices;ql=d/notifications", query);
}
[Test]
public void NotificationRecipientsBuildsQuery4()
{
var query = new NotificationRecipients()
.AddDeviceWithQuery(string.Empty)
.AddGroupWithQuery(string.Empty)
.AddUserWithQuery(string.Empty)
.BuildQuery();
Assert.AreEqual("/groups;ql=/users;ql=/devices;ql=/notifications", query);
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "User name and uuid can not be added at the same time.")]
public void UserNameAndUuidCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddUserWithName("u")
.AddUserWithUuid("i");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "User name and uuid can not be added at the same time.")]
public void UserUuidAndNameCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddUserWithUuid("i")
.AddUserWithName("u");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "User query can not be added together with user name or uuid.")]
public void UserUuidAndQueryCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddUserWithUuid("i")
.AddUserWithQuery("u");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "User query can not be added together with user name or uuid.")]
public void UserNameAndQueryCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddUserWithName("i")
.AddUserWithQuery("u");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Group path and query can not be added at the same time.")]
public void GroupPathAndQueryCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddGroupWithPath("u")
.AddGroupWithQuery("i");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Group path and query can not be added at the same time.")]
public void GroupQueryAndPathCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddGroupWithQuery("i")
.AddGroupWithPath("u");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Device name and query can not be added at the same time.")]
public void DeviceQueryAndNameCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddDeviceWithQuery("i")
.AddDeviceWithName("u");
}
[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Device name and query can not be added at the same time.")]
public void DeviceNameAndQueryCannotBeAddedAtTheSameTime()
{
new NotificationRecipients()
.AddDeviceWithName("i")
.AddDeviceWithQuery("u");
}
}
}