- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
79 lines
3.5 KiB
C#
79 lines
3.5 KiB
C#
using DanroJump.Settings;
|
|
using NUnit.Framework;
|
|
using UnityEditor;
|
|
|
|
namespace DanroJump.Tests.EditMode
|
|
{
|
|
public sealed class ServiceSettingsDatabasePrizeLevelsTests
|
|
{
|
|
private const string DatabasePath = "Assets/Settings/ServiceSettingsDatabase.asset";
|
|
|
|
[Test]
|
|
public void ServiceSettingsDatabase_ContainsPrizeLevelsStorageKey()
|
|
{
|
|
var database = AssetDatabase.LoadAssetAtPath<ServiceSettingsDatabase>(DatabasePath);
|
|
|
|
Assert.That(database, Is.Not.Null);
|
|
Assert.That(database.TryFind(ServiceSettingsKeys.PrizeLevels, out var definition), Is.True);
|
|
Assert.That(definition.ValueType, Is.EqualTo(ServiceSettingValueType.String));
|
|
Assert.That(definition.ShownInServiceMenu, Is.False);
|
|
Assert.That(definition.DefaultValue.stringValue, Is.EqualTo("{\"levels\":[]}"));
|
|
}
|
|
|
|
[Test]
|
|
public void ServiceSettingsDatabase_ContainsQrMessageTemplateStorageKey()
|
|
{
|
|
var database = AssetDatabase.LoadAssetAtPath<ServiceSettingsDatabase>(DatabasePath);
|
|
|
|
Assert.That(database, Is.Not.Null);
|
|
Assert.That(database.TryFind(ServiceSettingsKeys.QrMessageTemplate, out var definition), Is.True);
|
|
Assert.That(definition.ValueType, Is.EqualTo(ServiceSettingValueType.String));
|
|
Assert.That(definition.ShownInServiceMenu, Is.False);
|
|
Assert.That(definition.DefaultValue.stringValue, Is.EqualTo("{0}"));
|
|
}
|
|
|
|
[Test]
|
|
public void ServiceSettingsDatabase_ContainsQrPrizeTextStorageKeys()
|
|
{
|
|
var database = AssetDatabase.LoadAssetAtPath<ServiceSettingsDatabase>(DatabasePath);
|
|
|
|
Assert.That(database, Is.Not.Null);
|
|
AssertQrTextDefinition(database, ServiceSettingsKeys.QrPrizeTextBronze);
|
|
AssertQrTextDefinition(database, ServiceSettingsKeys.QrPrizeTextSilver);
|
|
AssertQrTextDefinition(database, ServiceSettingsKeys.QrPrizeTextGold);
|
|
}
|
|
|
|
[Test]
|
|
public void ServiceSettingsDatabase_ContainsVisibleQrSettingsButton()
|
|
{
|
|
var database = AssetDatabase.LoadAssetAtPath<ServiceSettingsDatabase>(DatabasePath);
|
|
|
|
Assert.That(database, Is.Not.Null);
|
|
Assert.That(database.TryFind(ServiceSettingsKeys.QrSettingsButton, out var definition), Is.True);
|
|
Assert.That(definition.ValueType, Is.EqualTo(ServiceSettingValueType.Button));
|
|
Assert.That(definition.ShownInServiceMenu, Is.True);
|
|
}
|
|
|
|
[Test]
|
|
public void ServiceSettingsDatabase_VolumeDefaultsAreAudible()
|
|
{
|
|
var database = AssetDatabase.LoadAssetAtPath<ServiceSettingsDatabase>(DatabasePath);
|
|
|
|
Assert.That(database, Is.Not.Null);
|
|
Assert.That(database.TryFind(ServiceSettingsKeys.MusicVolume, out var music), Is.True);
|
|
Assert.That(database.TryFind(ServiceSettingsKeys.SoundsVolume, out var sounds), Is.True);
|
|
Assert.That(music.DefaultValue.floatValue, Is.EqualTo(1f));
|
|
Assert.That(sounds.DefaultValue.floatValue, Is.EqualTo(1f));
|
|
}
|
|
|
|
private static void AssertQrTextDefinition(ServiceSettingsDatabase database, string key)
|
|
{
|
|
Assert.That(database.TryFind(key, out var definition), Is.True);
|
|
Assert.That(definition.ValueType, Is.EqualTo(ServiceSettingValueType.String));
|
|
Assert.That(definition.ShownInServiceMenu, Is.False);
|
|
Assert.That(definition.DefaultValue.stringValue, Is.Empty);
|
|
Assert.That(definition.MaxInt, Is.EqualTo(12));
|
|
}
|
|
}
|
|
}
|