From da05c69ab05b2db00938f8315271b2c57d02cbd7 Mon Sep 17 00:00:00 2001 From: "U-AMERICAS\\mccojon" Date: Thu, 20 Apr 2017 12:27:31 -0600 Subject: [PATCH] Added some unit tests for camelCaseToUpperCase Issue #58 Patch #2 - removed unnecessary variables Patch #3 - rename a variable in the test Patch #3 - same as above --- src/listener/utils/transforms/resource.js | 7 +-- src/test/resource.js | 77 +++++++++++++++++++++++ 2 files changed, 79 insertions(+), 5 deletions(-) create mode 100755 src/test/resource.js diff --git a/src/listener/utils/transforms/resource.js b/src/listener/utils/transforms/resource.js index d9df890..8d36f68 100644 --- a/src/listener/utils/transforms/resource.js +++ b/src/listener/utils/transforms/resource.js @@ -30,15 +30,12 @@ export default class Resource { } camelCaseToTitleCase(camelCase){ - if (camelCase === null || camelCase === "") { + if (camelCase == null || camelCase === "" ) { return camelCase; } camelCase = camelCase.trim(); - let newText = ""; - if (/[a-z]/.test(camelCase[0])){ - newText = camelCase[0].toUpperCase(); - } + let newText = camelCase[0].toUpperCase(); for (let i = 1; i < camelCase.length; i++) { if (/[A-Z]/.test(camelCase[i]) && /[a-z]/.test(camelCase[i-1])) { diff --git a/src/test/resource.js b/src/test/resource.js new file mode 100755 index 0000000..895af87 --- /dev/null +++ b/src/test/resource.js @@ -0,0 +1,77 @@ +/* +(c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import Resource from '../listener/utils/transforms/resource'; + +let chai = require('chai'); + +describe('Resource', () => { + + let oneViewResource; + + beforeEach(() => { + oneViewResource = { + type: 'ServerProfileTest', + status: 'Ok', + state: 'Assigned', + description: 'This server profile description', + hyperlink: 'serverProfileHyperLink', + sanStorage: {}, + pxeBootPolicy: {} + }; + + }); + + it('camelCaseToTitleCase uncapitalized results in 2 title case words', () => { + let serverProfileResource = new Resource(oneViewResource); + let myKeys = Object.keys(oneViewResource); + serverProfileResource.camelCaseToTitleCase(myKeys[5]).should.equal('San Storage'); + myKeys[5].should.equal('sanStorage'); + }); + + it('camelCaseToTitleCase uncapitalized results in 3 title case words', () => { + let serverProfileResource = new Resource(oneViewResource); + let myKeys = Object.keys(oneViewResource); + serverProfileResource.camelCaseToTitleCase(myKeys[6]).should.equal('Pxe Boot Policy'); + myKeys[6].should.equal('pxeBootPolicy'); + }); + + it('camelCaseToTitleCase undefined', () => { + let serverProfileResource = new Resource(oneViewResource); + let myKeys = Object.keys(oneViewResource); + serverProfileResource.camelCaseToTitleCase('').should.equal(''); + }); + + it('camelCaseToTitleCase undefined', () => { + let serverProfileResource = new Resource(oneViewResource); + let myKeys = Object.keys(oneViewResource); + let result = serverProfileResource.camelCaseToTitleCase(undefined); + chai.expect(result).to.equal(undefined); + }); + + it('camelCaseToTitleCase null', () => { + let serverProfileResource = new Resource(oneViewResource); + let myKeys = Object.keys(oneViewResource); + let result = serverProfileResource.camelCaseToTitleCase(null); + chai.expect(result).to.equal(null); + }); +});