public void SaveCurrentlyEquippedAsLoadout_CurrentlyEquippedFailsBecauseUserIsNotRegistered_ShouldReturnSameErrorAsCurrentlyEquipped() { IConfiguration config = Mock.Of <IConfiguration>(); IBungieApiService bungieApiService = Mock.Of <IBungieApiService>(); IManifestDao manifestDao = Mock.Of <IManifestDao>(); EmissaryDbContext dbContext = Mock.Of <EmissaryDbContext>(); IEmissaryDao emissaryDao = Mock.Of <IEmissaryDao>(); IAuthorizationService authorizationService = Mock.Of <IAuthorizationService>(); ulong discordId = 69; IEmissary emissary = new Emissary(config, bungieApiService, manifestDao, dbContext, emissaryDao, authorizationService); bool eventEmitted = false; emissary.RequestAuthorizationEvent += (discordId) => eventEmitted = true; EmissaryResult result = emissary.SaveCurrentlyEquippedAsLoadout(discordId, "raid"); Assert.IsFalse(result.Success); Assert.IsTrue(eventEmitted); Assert.IsTrue(result.ErrorMessage.Contains("need access")); }
public void SaveCurrentlyEquippedAsLoadout_CurrentlyEquipped_ShouldCallSaveLoadoutAndHaveSameBehavior() { IConfiguration config = Mock.Of <IConfiguration>(); IBungieApiService bungieApiService = Mock.Of <IBungieApiService>(); IManifestDao manifestDao = Mock.Of <IManifestDao>(); EmissaryDbContext dbContext = Mock.Of <EmissaryDbContext>(); IEmissaryDao emissaryDao = Mock.Of <IEmissaryDao>(); IAuthorizationService authorizationService = Mock.Of <IAuthorizationService>(); ulong discordId = 69; long destinyCharacterId = 420; string loadoutName = "last wish raid"; DestinyItem destinyItem1 = new DestinyItem(6969, "dummy item 1", new List <string>() { "Weapon", "Kinetic Weapon" }, 420420, new List <uint>() { 1, 2 }, "Legendary"); DestinyItem destinyItem2 = new DestinyItem(9696, "dummy item 2", new List <string>() { "Armor", "Helmet" }, 240240, new List <uint>() { 3, 4 }, "Legendary"); // List<DestinyItem> loadoutItems = new List<DestinyItem>() { destinyItem1, destinyItem2 }; // Loadout currentlyEquippedLoadout = new Loadout(discordId, destinyCharacterId, loadoutName, loadoutItems); long destinyProfileId = 42069; EmissaryUser user = new EmissaryUser(discordId, destinyProfileId, BungieMembershipType.Steam); Mock.Get(emissaryDao).Setup(m => m.GetUserByDiscordId(discordId)).Returns(user); Mock.Get(emissaryDao).Setup(m => m.GetAllLoadoutsForUser(discordId)).Returns(new List <Loadout>() { }); Mock.Get(emissaryDao).Setup(m => m.GetLoadout(discordId, destinyCharacterId, loadoutName)).Returns(value: null); ProfileCharactersResponse charactersResponse = new ProfileCharactersResponse(); DestinyCharacter character = new DestinyCharacter(destinyCharacterId, DateTimeOffset.Parse("2019-12-24T22:40:31Z"), destinyProfileId, BungieMembershipType.Steam); charactersResponse.Characters.Add(character.CharacterId, character); CharacterEquipmentResponse equipmentResponse = new CharacterEquipmentResponse(); DestinyGenericItem genericItem1 = new DestinyGenericItem(destinyItem1.ItemHash, destinyItem1.ItemInstanceId); DestinyGenericItem genericItem2 = new DestinyGenericItem(destinyItem2.ItemHash, destinyItem2.ItemInstanceId); equipmentResponse.Items = new List <DestinyGenericItem>() { genericItem1, genericItem2 }; Mock.Get(bungieApiService).Setup(m => m.GetProfileCharacters(It.IsAny <ProfileCharactersRequest>())).Returns(charactersResponse); Mock.Get(bungieApiService).Setup(m => m.GetCharacterEquipment(It.IsAny <CharacterEquipmentRequest>())).Returns(equipmentResponse); Mock.Get(manifestDao).Setup(m => m.GetItemDefinition(destinyItem1.ItemHash)).Returns(new ManifestItemDefinition(destinyItem1.Name, destinyItem1.TierTypeName, destinyItem1.CategoryHashes)); Mock.Get(manifestDao).Setup(m => m.GetItemDefinition(destinyItem2.ItemHash)).Returns(new ManifestItemDefinition(destinyItem2.Name, destinyItem2.TierTypeName, destinyItem2.CategoryHashes)); Mock.Get(manifestDao).Setup(m => m.GetItemCategoryDefinition(1)).Returns(new ManifestItemCategoryDefinition("Weapon")); Mock.Get(manifestDao).Setup(m => m.GetItemCategoryDefinition(2)).Returns(new ManifestItemCategoryDefinition("Kinetic Weapon")); Mock.Get(manifestDao).Setup(m => m.GetItemCategoryDefinition(3)).Returns(new ManifestItemCategoryDefinition("Armor")); Mock.Get(manifestDao).Setup(m => m.GetItemCategoryDefinition(4)).Returns(new ManifestItemCategoryDefinition("Helmet")); IEmissary emissary = new Emissary(config, bungieApiService, manifestDao, dbContext, emissaryDao, authorizationService); EmissaryResult result = emissary.SaveCurrentlyEquippedAsLoadout(discordId, loadoutName); Assert.IsTrue(result.Success); Loadout actualSavedLoadout = JsonConvert.DeserializeObject <Loadout>(result.Message); Assert.AreEqual(loadoutName, actualSavedLoadout.LoadoutName); Assert.AreEqual(2, actualSavedLoadout.Items.Count); }